[C#]用C#动态生成Word文档并将数据填入Word表格中

时间:2022-11-06 12:19:55

刚刚实现了个功能:用C#实现动态生成Word文档,在Word文档中插入表格,并将读出的数据填入到表格中。

要使用C#操作word,首先要添加引用:

       1、添加引用->COM->Microsoft Word 11.0 Object Library

       2、在.cs文件中添加

[C#]用C#动态生成Word文档并将数据填入Word表格中using Word;

下面的例子中包括C#对Word文档的创建、插入表格、设置样式等操作:

(例子中代码有些涉及数据信息部分被省略,重要是介绍一些C#操作word文档的方法)

[C#]用C#动态生成Word文档并将数据填入Word表格中        public string CreateWordFile(string CheckedInfo)
[C#]用C#动态生成Word文档并将数据填入Word表格中[C#]用C#动态生成Word文档并将数据填入Word表格中        
{
[C#]用C#动态生成Word文档并将数据填入Word表格中            
string message = "";
[C#]用C#动态生成Word文档并将数据填入Word表格中            
try
[C#]用C#动态生成Word文档并将数据填入Word表格中[C#]用C#动态生成Word文档并将数据填入Word表格中            
{
[C#]用C#动态生成Word文档并将数据填入Word表格中                Object Nothing 
= System.Reflection.Missing.Value;
[C#]用C#动态生成Word文档并将数据填入Word表格中                Directory.CreateDirectory(
"C:/CNSI");  //创建文件所在目录
[C#]用C#动态生成Word文档并将数据填入Word表格中
                string name = "CNSI_" + DateTime.Now.ToShortString()+".doc";
[C#]用C#动态生成Word文档并将数据填入Word表格中                
object filename = "C://CNSI//" + name;  //文件保存路径
[C#]用C#动态生成Word文档并将数据填入Word表格中                
//创建Word文档
[C#]用C#动态生成Word文档并将数据填入Word表格中
                Word.Application WordApp = new Word.ApplicationClass();
[C#]用C#动态生成Word文档并将数据填入Word表格中                Word.Document WordDoc 
= WordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
[C#]用C#动态生成Word文档并将数据填入Word表格中
[C#]用C#动态生成Word文档并将数据填入Word表格中                
//添加页眉
[C#]用C#动态生成Word文档并将数据填入Word表格中
                WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView;
[C#]用C#动态生成Word文档并将数据填入Word表格中                WordApp.ActiveWindow.View.SeekView 
= WdSeekView.wdSeekPrimaryHeader;
[C#]用C#动态生成Word文档并将数据填入Word表格中                WordApp.ActiveWindow.ActivePane.Selection.InsertAfter(
"[页眉内容]");
[C#]用C#动态生成Word文档并将数据填入Word表格中                WordApp.Selection.ParagraphFormat.Alignment 
= Word.WdParagraphAlignment.wdAlignParagraphRight;//设置右对齐
[C#]用C#动态生成Word文档并将数据填入Word表格中
                WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument;//跳出页眉设置
[C#]用C#动态生成Word文档并将数据填入Word表格中

[C#]用C#动态生成Word文档并将数据填入Word表格中                WordApp.Selection.ParagraphFormat.LineSpacing 
= 15f;//设置文档的行间距
[C#]用C#动态生成Word文档并将数据填入Word表格中
[C#]用C#动态生成Word文档并将数据填入Word表格中                
//移动焦点并换行
[C#]用C#动态生成Word文档并将数据填入Word表格中
                object count = 14;
[C#]用C#动态生成Word文档并将数据填入Word表格中                
object WdLine = Word.WdUnits.wdLine;//换一行;
[C#]用C#动态生成Word文档并将数据填入Word表格中
                 WordApp.Selection.MoveDown(ref WdLine, ref count, ref Nothing);//移动焦点
[C#]用C#动态生成Word文档并将数据填入Word表格中
                 WordApp.Selection.TypeParagraph();//插入段落
[C#]用C#动态生成Word文档并将数据填入Word表格中
[C#]用C#动态生成Word文档并将数据填入Word表格中                 
//文档中创建表格
[C#]用C#动态生成Word文档并将数据填入Word表格中
                 Word.Table newTable = WordDoc.Tables.Add(WordApp.Selection.Range, 123ref Nothing, ref Nothing);
[C#]用C#动态生成Word文档并将数据填入Word表格中                 
//设置表格样式
[C#]用C#动态生成Word文档并将数据填入Word表格中
                 newTable.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleThickThinLargeGap;
[C#]用C#动态生成Word文档并将数据填入Word表格中                 newTable.Borders.InsideLineStyle 
= Word.WdLineStyle.wdLineStyleSingle;
[C#]用C#动态生成Word文档并将数据填入Word表格中                 newTable.Columns[
1].Width = 100f;
[C#]用C#动态生成Word文档并将数据填入Word表格中                 newTable.Columns[
2].Width = 220f;
[C#]用C#动态生成Word文档并将数据填入Word表格中                 newTable.Columns[
3].Width = 105f;
[C#]用C#动态生成Word文档并将数据填入Word表格中
[C#]用C#动态生成Word文档并将数据填入Word表格中                 
//填充表格内容
[C#]用C#动态生成Word文档并将数据填入Word表格中
                 newTable.Cell(11).Range.Text = "产品详细信息表";
[C#]用C#动态生成Word文档并将数据填入Word表格中                 newTable.Cell(
11).Range.Bold = 2;//设置单元格中字体为粗体
[C#]用C#动态生成Word文档并将数据填入Word表格中                 
//合并单元格
[C#]用C#动态生成Word文档并将数据填入Word表格中
                 newTable.Cell(11).Merge(newTable.Cell(13));
[C#]用C#动态生成Word文档并将数据填入Word表格中                 WordApp.Selection.Cells.VerticalAlignment 
= Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中
[C#]用C#动态生成Word文档并将数据填入Word表格中
                 WordApp.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;//水平居中
[C#]用C#动态生成Word文档并将数据填入Word表格中                        
[C#]用C#动态生成Word文档并将数据填入Word表格中                 
//填充表格内容
[C#]用C#动态生成Word文档并将数据填入Word表格中
                 newTable.Cell(21).Range.Text = "产品基本信息";
[C#]用C#动态生成Word文档并将数据填入Word表格中                 newTable.Cell(
21).Range.Font.Color = Word.WdColor.wdColorDarkBlue;//设置单元格内字体颜色
[C#]用C#动态生成Word文档并将数据填入Word表格中                 
//合并单元格
[C#]用C#动态生成Word文档并将数据填入Word表格中
                 newTable.Cell(21).Merge(newTable.Cell(23));
[C#]用C#动态生成Word文档并将数据填入Word表格中                 WordApp.Selection.Cells.VerticalAlignment 
= Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
[C#]用C#动态生成Word文档并将数据填入Word表格中
[C#]用C#动态生成Word文档并将数据填入Word表格中                  
//填充表格内容
[C#]用C#动态生成Word文档并将数据填入Word表格中
                  newTable.Cell(31).Range.Text = "品牌名称:";
[C#]用C#动态生成Word文档并将数据填入Word表格中                  newTable.Cell(
32).Range.Text = BrandName;
[C#]用C#动态生成Word文档并将数据填入Word表格中                  
//纵向合并单元格
[C#]用C#动态生成Word文档并将数据填入Word表格中
                  newTable.Cell(33).Select();//选中一行
[C#]用C#动态生成Word文档并将数据填入Word表格中
                  object moveUnit = Word.WdUnits.wdLine;
[C#]用C#动态生成Word文档并将数据填入Word表格中                  
object moveCount = 5;
[C#]用C#动态生成Word文档并将数据填入Word表格中                  
object moveExtend = Word.WdMovementType.wdExtend;
[C#]用C#动态生成Word文档并将数据填入Word表格中                   WordApp.Selection.MoveDown(
ref moveUnit, ref moveCount, ref moveExtend);
[C#]用C#动态生成Word文档并将数据填入Word表格中                   WordApp.Selection.Cells.Merge();
[C#]用C#动态生成Word文档并将数据填入Word表格中                   
//插入图片
[C#]用C#动态生成Word文档并将数据填入Word表格中
                   string FileName = Picture;//图片所在路径
[C#]用C#动态生成Word文档并将数据填入Word表格中
                   object LinkToFile = false;
[C#]用C#动态生成Word文档并将数据填入Word表格中                   
object SaveWithDocument = true;
[C#]用C#动态生成Word文档并将数据填入Word表格中                   
object Anchor = WordDoc.Application.Selection.Range;
[C#]用C#动态生成Word文档并将数据填入Word表格中                   WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, 
ref LinkToFile, ref SaveWithDocument, ref Anchor);
[C#]用C#动态生成Word文档并将数据填入Word表格中                    WordDoc.Application.ActiveDocument.InlineShapes[
1].Width = 100f;//图片宽度
[C#]用C#动态生成Word文档并将数据填入Word表格中
                    WordDoc.Application.ActiveDocument.InlineShapes[1].Height = 100f;//图片高度
[C#]用C#动态生成Word文档并将数据填入Word表格中                    
//将图片设置为四周环绕型
[C#]用C#动态生成Word文档并将数据填入Word表格中
                    Word.Shape s = WordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape();
[C#]用C#动态生成Word文档并将数据填入Word表格中                    s.WrapFormat.Type 
= Word.WdWrapType.wdWrapSquare;
[C#]用C#动态生成Word文档并将数据填入Word表格中                        
[C#]用C#动态生成Word文档并将数据填入Word表格中                    newTable.Cell(
121).Range.Text = "产品特殊属性";
[C#]用C#动态生成Word文档并将数据填入Word表格中                    newTable.Cell(
121).Merge(newTable.Cell(123));
[C#]用C#动态生成Word文档并将数据填入Word表格中                     
//在表格中增加行
[C#]用C#动态生成Word文档并将数据填入Word表格中
                     WordDoc.Content.Tables[1].Rows.Add(ref Nothing);
[C#]用C#动态生成Word文档并将数据填入Word表格中                      
[C#]用C#动态生成Word文档并将数据填入Word表格中                     WordDoc.Paragraphs.Last.Range.Text 
= "文档创建时间:" + DateTime.Now.ToString();//“落款”
[C#]用C#动态生成Word文档并将数据填入Word表格中
                     WordDoc.Paragraphs.Last.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
[C#]用C#动态生成Word文档并将数据填入Word表格中
[C#]用C#动态生成Word文档并将数据填入Word表格中                    
//文件保存
[C#]用C#动态生成Word文档并将数据填入Word表格中
                    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);
[C#]用C#动态生成Word文档并将数据填入Word表格中                    WordDoc.Close(
ref Nothing, ref Nothing, ref Nothing);
[C#]用C#动态生成Word文档并将数据填入Word表格中                    WordApp.Quit(
ref Nothing, ref Nothing, ref Nothing);
[C#]用C#动态生成Word文档并将数据填入Word表格中                    message
=name+"文档生成成功,以保存到C:/CNSI/下";
[C#]用C#动态生成Word文档并将数据填入Word表格中            }

[C#]用C#动态生成Word文档并将数据填入Word表格中            
catch
[C#]用C#动态生成Word文档并将数据填入Word表格中[C#]用C#动态生成Word文档并将数据填入Word表格中            
{
[C#]用C#动态生成Word文档并将数据填入Word表格中                message 
= "文件导出异常!";
[C#]用C#动态生成Word文档并将数据填入Word表格中            }

[C#]用C#动态生成Word文档并将数据填入Word表格中            
return message;
[C#]用C#动态生成Word文档并将数据填入Word表格中        }

设计时没有找到有关删除word表格中行的操作,如有人知道,请给树懒予补充,谢谢~~