C#创建Word并填充内容

时间:2018-11-28 09:50 作者:你姐 阅读数:880


            Object Nothing = System.Reflection.Missing.Value;

            Directory.CreateDirectory("F:/抽奖");  //创建文件所在目录

            string time = DateTime.Now.Year + DateTime.Now.Hour.ToString().PadLeft(2, '0') + DateTime.Now.Minute.ToString().PadLeft(2, '0') + DateTime.Now.Second.ToString().PadLeft(2, '0');//DateTime.Now.ToLongDateString()  2018年11月27日

            string name = "GT_" + time + ".doc";

            object filename = "F://抽奖//" + name;  //文件保存路径

            //创建Word文档

            Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.Application();

            Microsoft.Office.Interop.Word.Document WordDoc = WordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);


//添加页眉

            WordApp.ActiveWindow.View.Type = Microsoft.Office.Interop.Word.WdViewType.wdOutlineView;

            WordApp.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekPrimaryHeader;

            WordApp.ActiveWindow.ActivePane.Selection.InsertAfter("[页眉内容]");

            //设置右对齐

            WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;

            WordApp.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekMainDocument;//跳出页眉设置


            WordApp.Selection.ParagraphFormat.LineSpacing = 15f;//设置文档的行间距


            //移动焦点并换行

            object count = 14;

            object WdLine = Microsoft.Office.Interop.Word.WdUnits.wdLine;//换一行;

            WordApp.Selection.MoveDown(ref WdLine, ref count, ref Nothing);//移动焦点

            WordApp.Selection.TypeParagraph();//插入段落


//文档中创建表格

            Microsoft.Office.Interop.Word.Table newTable = WordDoc.Tables.Add(WordApp.Selection.Range, 12, 3, ref Nothing, ref Nothing);

            //设置表格样式

            newTable.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleThickThinLargeGap;

            newTable.Borders.InsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;

            //设置列宽

            newTable.Columns[1].Width = 100f;

            newTable.Columns[2].Width = 220f;

            newTable.Columns[3].Width = 105f;


//填充表格内容

            newTable.Cell(1, 1).Range.Text = title;

            newTable.Cell(1, 1).Range.Bold = 2;//设置单元格中字体为粗体

             //合并单元格

            newTable.Cell(1, 1).Merge(newTable.Cell(1, 3));

            //垂直居中

            WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;

            //水平居中

            WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;


            //填充表格内容(2行1列)

            newTable.Cell(2, 1).Range.Text = "基本信息";

            newTable.Cell(2, 1).Range.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorDarkBlue;//设置单元格内字体颜色

             //合并单元格

            newTable.Cell(2, 1).Merge(newTable.Cell(2, 3));

            WordApp.Selection.Cells.VerticalAlignment = Microsoft.Office.Interop.Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;


            //填充表格内容

            newTable.Cell(3, 1).Range.Text = "名称:";

            newTable.Cell(3, 2).Range.Text = "BrandName";

            //纵向合并单元格

            newTable.Cell(3, 3).Select();//选中一行

            object moveUnit = Microsoft.Office.Interop.Word.WdUnits.wdLine;

            object moveCount = 5;

            object moveExtend = Microsoft.Office.Interop.Word.WdMovementType.wdExtend;

            WordApp.Selection.MoveDown(ref moveUnit, ref moveCount, ref moveExtend);

            WordApp.Selection.Cells.Merge();

            //插入图片

            string FileName = @"F:\che1.jpg";//图片所在路径

            object LinkToFile = false;

            object SaveWithDocument = true;

            object Anchor = WordDoc.Application.Selection.Range;

            WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);

            WordDoc.Application.ActiveDocument.InlineShapes[1].Width = 100f;//图片宽度

            WordDoc.Application.ActiveDocument.InlineShapes[1].Height = 100f;//图片高度

             //将图片设置为四周环绕型

            Microsoft.Office.Interop.Word.Shape s = WordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape();

            s.WrapFormat.Type = Microsoft.Office.Interop.Word.WdWrapType.wdWrapSquare;


            newTable.Cell(12, 1).Range.Text = "属性";

            newTable.Cell(12, 1).Merge(newTable.Cell(12, 3));

            //在表格中增加行

            WordDoc.Content.Tables[1].Rows.Add(ref Nothing);


            WordDoc.Paragraphs.Last.Range.Text = "文档创建时间:" + DateTime.Now.ToString();//“落款”

            WordDoc.Paragraphs.Last.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;


           ////文档保护密码加密

             WordApp.ActiveDocument.Protect(Microsoft.Office.Interop.Word.WdProtectionType.wdAllowOnlyComments, false, "密码", ref Nothing, ref Nothing);


               //只读

                WordApp.ActiveDocument.Protect(Microsoft.Office.Interop.Word.WdProtectionType.wdAllowOnlyReading, true, "密码", ref Nothing, ref Nothing);


//添加页脚

WordApp.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekCurrentPageFooter;

                    WordApp.Selection.HeaderFooter.LinkToPrevious = false;

                    WordApp.Selection.HeaderFooter.Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;

                    WordApp.ActiveWindow.ActivePane.Selection.InsertAfter("页脚内容");


            //文件保存

            WordDoc.SaveAs(ref filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);


//关闭文档

            WordDoc.Close(ref Nothing, ref Nothing, ref Nothing);

//退出进程

            WordApp.Quit(ref Nothing, ref Nothing, ref Nothing);


image.png



推荐文章

[推荐] C# 设置Excel数据自适应行高、列宽的2种情况 (转)

[推荐] C# 图片处理帮助类(压缩,裁剪,缩略图)

[推荐] C#创建Word并填充内容

[推荐] C# 通过AForge.dll 调用摄像头设备

[推荐] C# UDP 通讯 简单例子

[推荐] 8天玩转并行开发——第七天 简要分析任务与线程池

[推荐] 8天玩转并行开发——第六天 异步编程模型

[推荐] 8天玩转并行开发——第四天 同步机制(上)

[推荐] 8天玩转并行开发——第一天 Parallel的使用

[推荐] c# 个人总结

[推荐] 8天玩转并行开发——第五天 同步机制(下)

[推荐] 将DataRow[]转换成DataTable的两种写法

[推荐] 8天玩转并行开发——第三天 plinq的使用

[推荐] Bitmap与byte[] 互转

[推荐] 关于.net登录前端加密传输


评论列表



注册用户登录后才能发表评论,请登录注册,访问 博客首页