C#编程实现动态生成word文档_第1页
C#编程实现动态生成word文档_第2页
C#编程实现动态生成word文档_第3页
C#编程实现动态生成word文档_第4页
C#编程实现动态生成word文档_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、如何用C#编程实现动态生成Word文档并填充数据的效果呢?要使用C#操作word,首先要添加引用:1、添加引用 -COM-Microsoft Word11.0 Object Library2、在.cs文件中添加using Word;下面的例子中包括C#寸Word文档的创建、插入表格、设置样式等操作:(例子中代码有些涉及数据信息部分被省略,重要是介绍一些C#操作word文档的方法)public string CreateWordFile( string CheckedInfo). string message = ;try. Object Nothing = System.Reflection.

2、Missing.Value;Directory.CreateDirectory( C:/CNSI );/ 创建文件所在目录 string name = CNSI_ +DateTime.Now.ToShortString() + .doc ;object filename = C:/CNSI/ + name; / 文件保存路径 /创建 Word 文档Word.Application WordApp = new Word.ApplicationClass();Word.DocumentWordDoc = WordApp.Documents.Add( ref Nothing, ref Nothing

3、, refNothing, ref Nothing);/ 添加页眉WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView;WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader;WordApp.ActiveWindow.ActivePane.Selection.InsertAfter( 页眉内容 );WordApp.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlign

4、ParagraphRight; /设置右对齐WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument; /跳出页眉设置WordApp.Selection.ParagraphFormat.LineSpacing = 15f; / 设置文档的行间 距/ 移动焦点并换行object count = 14 ;object WdLine = Word.WdUnits.wdLine; / 换一行 ;WordApp.Selection.MoveDown( ref WdLine, ref count, ref Nothing); /

5、移动焦点WordApp.Selection.TypeParagraph(); /插入段落/ 文档中创建表格Word.TablenewTable = WordDoc.Tables.Add(WordApp.Selection.Range, 12 , 3 ,ref Nothing, ref Nothing);/ 设置表格样式newTable.Borders.OutsideLineStyle =Word.WdLineStyle.wdLineStyleThickThinLargeGap;newTable.Borders.InsideLineStyle = Word.WdLineStyle.wdLineS

6、tyleSingle;newTable.Columns 1 .Width = 100f;newTable.Columns 2 .Width = 220f;newTable.Columns 3 .Width = 105f;/ 填充表格内容newTable.Cell( 1 , 1 ).Range.Text = 产品详细信息表 ;newTable.Cell( 1 ,1 ).Range.Bold = 2 ; / 设置单元格中字体为粗体/ 合并单元格newTable.Cell( 1 , 1 ).Merge(newTable.Cell( 1 , 3 );WordApp.Selection.Cells.Ve

7、rticalAlignment =Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter; / 垂直居中WordApp.Selection.ParagraphFormat.Alignment =Word.WdParagraphAlignment.wdAlignParagraphCenter; /水平居中/ 填充表格内容newTable.Cell( 2 , 1 ).Range.Text = 产品基本信息 ;newTable.Cell( 2 ,1 ).Range.Font.Color = Word.WdColor.wdColorDarkBlue

8、; / 设置单元格内字体颜 色/ 合并单元格newTable.Cell( 2 , 1 ).Merge(newTable.Cell( 2 , 3 );WordApp.Selection.Cells.VerticalAlignment =Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;/ 填充表格内容newTable.Cell( 3 , 1 ).Range.Text = 品牌名称: ;newTable.Cell( 3 , 2 ).Range.Text = BrandName;/ 纵向合并单元格newTable.Cell( 3 , 3 )

9、.Select(); /选中一行object moveUnit = Word.WdUnits.wdLine;object moveCount = 5 ;object moveExtend = Word.WdMovementType.wdExtend;WordApp.Selection.MoveDown( ref moveUnit, ref moveCount, refmoveExtend);WordApp.Selection.Cells.Merge();/ 插入图片string FileName = Picture; / 图片所在路径object LinkToFile = false ;obj

10、ect 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.ActiveDoc

11、ument.InlineShapes 1 .Height = 100f; / 图 片高度/ 将图片设置为四周环绕型Word.ShapeWordDoc.Application.ActiveDocument.InlineShapes 1 .ConvertToShape();s.WrapFormat.Type = Word.WdWrapType.wdWrapSquare;newTable.Cell( 12 , 1 ).Range.Text = 产品特殊属性 ;newTable.Cell( 12 ,1 ).Merge(newTable.Cell( 12 , 3 );/ 在表格中增加行WordDoc.C

12、ontent.Tables 1 .Rows.Add( ref Nothing);WordDoc.Paragraphs.Last.Range.Text = 文档创建时间: +DateTime.Now.ToString(); / 落款 ”“WordDoc.Paragraphs.Last.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;/ 文件保存WordDoc.SaveAs( ref filename, ref Nothing, ref Nothing, refNothing, ref Nothing,ref Nothing,

13、ref Nothing,ref Nothing,ref Nothing,refNothing, refNothing, refNothing, refNothing, refNothing, refNothing, ref Nothing);WordDoc.Close( ref Nothing, ref Nothing, ref Nothing);WordApp.Quit( ref Nothing, ref Nothing, ref Nothing);message = name + 文档生成成功,以保存到 C:CNSI 下;catch. message =文件导出异常! ;return me

14、ssage;usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingWord;usingSystem.IO;namespaceWindowsForms_WordpublicpartialclassForm1:FormpublicForm1()I nitializeComponent();privatevoid

15、Form1_Load(objectsender,EventArgse)publicstringCreateWordFile(stringChenkedInfo)stringmessage =;tryobjectNothing = System.Reflection.Missing.Value;/ 创建文件目录Directory.CreateDirectory(d:/Test);stri ngn ame 二Test_+DateTime.Now.ToShortDateStri ng() +.doc;/文件保存路径objectfilename =d:/Test/+ name;/ 创建 word 文档

16、Word.ApplicationWordApp =newWord.ApplicationClass();Word.DocumentWordDoc =WordApp.Documents.Add(refNothing,refNothing,refNothing,refNothing);/ 添加页眉WordApp.ActiveWindow.View.Type =WdViewType.wdOutlineView;WordApp.ActiveWindow.View.SeekView=WdSeekView.wdSeekCurrentPageHeader;WordApp.ActiveWindow.Activ

17、ePane.Selec tion.InsertAfter( 页眉内容 );/ 设置右对齐WordApp.Selection.ParagraphFormat.Alignment =Word.WdParagraphAlignment.wdAlignParagraphRight;/ 跳出页眉设置WordApp.ActiveWindow.View.SeekView二WdSeekView.wdSeekMai nDocume nt;/设置文档的行间距WordApp.Selection.ParagraphFormat.LineSpacing = 15f;/ 移动焦点并换行objectcount = 14;o

18、bjectWdLi ne = Word.WdU nits.wdLi ne; 换一行WordApp.Selection.MoveDown(refWdLine,refcount,refNothing);/ 移动焦点WordApp.Selectio n.TypeParagraph();/插入段落/ 文档中创建表格Word.TablenewTable = WordDoc.Tables.Add(WordApp.Selection.Range, 12, 3,refNothing,refNothing);/ 设置表格样式newTable.Borders.OutsideLineStyle =Word.WdLi

19、neStyle.wdLineStyleThickThinMedGap; newTable.Borders.InsideLineStyle =Word.WdLineStyle.wdLineStyleSingle;newTable.Columns1.Width = 100f;newTable.Columns2.Width = 220f;newTable.Columns3.Width = 105f;/ 填充表格内容newTable.Cell(1, 1).Range.Text =产 品详细信息表 ;newTable.Cell(1, 1).Range.Bold = 2;/设/ 置单元格中字体为粗体/ 合

20、并单元格newTable.Cell(1, 1).Merge(newTable.Cell(1, 3);WordApp.Selection.Cells.VerticalAlignment =Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;/ 垂直居中WordApp.Selection.ParagraphFormat.Alignment =Word.WdParagraphAlig nmen t.wdAlig nParagraphCe nter;/ 水平居中/ 填充表格内容newTable.Cell(2, 1).Range.Text =产品

21、基本信息 ;n ewTable.Cell(2, 1).Ran ge.F on t.Color = Word.WdColor.wdColorDarkBlue;设置 单元格内字体颜色/ 合并单元格newTable.Cell(2, 1).Merge(newTable.Cell(2, 3);WordApp.Selection.Cells.VerticalAlignment =Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;/ 填充表格内容newTable.Cell(3, 1).Range.Text =品 牌名称:newTable.Cell(

22、3, 2).Range.Text =BrandName;/?/ 纵向合并单元格n ewTable.Cell(3, 3).Select();/选中一行objectmoveUnit = Word.WdUnits.wdLine;objectmoveCount = 5;objectmoveExtend = Word.WdMovementType.wdExtend;WordApp.Selection.MoveDown(refmoveUnit,refmoveCount,refmoveExtend);W ordApp.Selection.Cells.Merge();/ 插入图片stringFileName

23、=d:/;/ 图片所在路径objectLinkToFile =false;objectSaveWithDocument =true;objectAnchor = WordDoc.Application.Selection.Range;WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName,refLin kToFile,refSaveWithDocument,refAnchor);WordDoc.Application.ActiveDocument.InlineShapes1.Width = 100f ; /图片高 度/将图片设置为四周环绕型Word.Shapes =WordDoc.Application.ActiveDocument.InlineShapes1.ConvertToShape();s.WrapFormat.Type

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论