C#動(dòng)態(tài)生成Word文檔并填充數(shù)據(jù)
作者:chenli985
本文介紹了實(shí)現(xiàn)C#動(dòng)態(tài)生成Word文檔的步驟,供大家參考。
C#動(dòng)態(tài)生成Word文檔步驟之一:添加引用->COM->Microsoft Word 11.0 Object Library
C#動(dòng)態(tài)生成Word文檔步驟之二:在.cs文件中添加 using Word;
下面的例子中包括C#對(duì)Word文檔的創(chuàng)建、插入表格、設(shè)置樣式等操作: (例子中代碼有些涉及數(shù)據(jù)信息部分被省略,重要是介紹一些C#操作word文檔的方法)
- public string CreateWordFile( string CheckedInfo)
- ... {
- string message = "" ;
- try
- ... {
- Object Nothing = System.Reflection.Missing.Value;
- Directory.CreateDirectory( " C:/CNSI " ); // 創(chuàng)建文件所在目錄
- string name = " CNSI_ " + DateTime.Now.ToShortString() + " .doc " ;
- object filename = " C://CNSI// " + name; // 文件保存路徑
- // 創(chuàng)建Word文檔
- Word.Application WordApp = new Word.ApplicationClass();
- Word.Document WordDoc = WordApp.Documents.Add( ref Nothing, ref Nothing, ref Nothing, ref Nothing);
- // 添加頁(yè)眉
- WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView;
- WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader;
- WordApp.ActiveWindow.ActivePane.Selection.InsertAfter( " [頁(yè)眉內(nèi)容] " );
- WordApp.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight; // 設(shè)置右對(duì)齊
- WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument; // 跳出頁(yè)眉設(shè)置
- WordApp.Selection.ParagraphFormat.LineSpacing = 15f; // 設(shè)置文檔的行間距
- // 移動(dòng)焦點(diǎn)并換行
- object count = 14 ;
- object WdLine = Word.WdUnits.wdLine; // 換一行;
- WordApp.Selection.MoveDown( ref WdLine, ref count, ref Nothing); // 移動(dòng)焦點(diǎn)
- WordApp.Selection.TypeParagraph(); // 插入段落
- // 文檔中創(chuàng)建表格
- Word.Table newTable = WordDoc.Tables.Add(WordApp.Selection.Range, 12 , 3 , ref Nothing, ref Nothing);
- // 設(shè)置表格樣式
- newTable.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleThickThinLargeGap;
- newTable.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;
- newTable.Columns[ 1 ].Width = 100f;
- newTable.Columns[ 2 ].Width = 220f;
- newTable.Columns[ 3 ].Width = 105f;
- // 填充表格內(nèi)容
- newTable.Cell( 1 , 1 ).Range.Text = " 產(chǎn)品詳細(xì)信息表 " ;
- newTable.Cell( 1 , 1 ).Range.Bold = 2 ; // 設(shè)置單元格中字體為粗體
- // 合并單元格
- newTable.Cell( 1 , 1 ).Merge(newTable.Cell( 1 , 3 ));
- WordApp.Selection.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter; // 垂直居中
- WordApp.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; // 水平居中
- // 填充表格內(nèi)容
- newTable.Cell( 2 , 1 ).Range.Text = " 產(chǎn)品基本信息 " ;
- newTable.Cell( 2 , 1 ).Range.Font.Color = Word.WdColor.wdColorDarkBlue; // 設(shè)置單元格內(nèi)字體顏色
- // 合并單元格
- newTable.Cell( 2 , 1 ).Merge(newTable.Cell( 2 , 3 ));
- WordApp.Selection.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
- // 填充表格內(nèi)容
- newTable.Cell( 3 , 1 ).Range.Text = " 品牌名稱: " ;
- newTable.Cell( 3 , 2 ).Range.Text = BrandName;
- // 縱向合并單元格
- newTable.Cell( 3 , 3 ).Select(); // 選中一行
- object moveUnit = Word.WdUnits.wdLine;
- object moveCount = 5 ;
- object moveExtend = Word.WdMovementType.wdExtend;
- WordApp.Selection.MoveDown( ref moveUnit, ref moveCount, ref moveExtend);
- WordApp.Selection.Cells.Merge();
- // 插入圖片
- string FileName = Picture; // 圖片所在路徑
- 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; // 圖片高度
- // 將圖片設(shè)置為四周環(huán)繞型
- Word.Shape s = WordDoc.Application.ActiveDocument.InlineShapes[ 1 ].ConvertToShape();
- s.WrapFormat.Type = Word.WdWrapType.wdWrapSquare;
- newTable.Cell( 12 , 1 ).Range.Text = " 產(chǎn)品特殊屬性 " ;
- newTable.Cell( 12 , 1 ).Merge(newTable.Cell( 12 , 3 ));
- // 在表格中增加行
- WordDoc.Content.Tables[ 1 ].Rows.Add( ref Nothing);
- WordDoc.Paragraphs.Last.Range.Text = " 文檔創(chuàng)建時(shí)間: " + DateTime.Now.ToString(); // “落款”
- WordDoc.Paragraphs.Last.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
- // 文件保存
- 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);
- message = name + " 文檔生成成功,以保存到C:CNSI下 " ;
- }
- catch
- ... {
- message = " 文件導(dǎo)出異常! " ;
- }
- return message;
- }
這樣,就實(shí)現(xiàn)了 C#動(dòng)態(tài)生成Word文檔。
【編輯推薦】
責(zé)任編輯:book05
來(lái)源:
csdn