时间:2021-05-20
本文以实例形式讲述了C#生成Word记录的方法,具体实现代码如下:
private void button1_Click(object sender, System.EventArgs e){object oMissing = System.Reflection.Missing.Value;object oEndOfDoc = "\\endofdoc"; //创建一个document.Word._Application oWord;Word._Document oDoc;oWord = new Word.Application();oWord.Visible = true;oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,ref oMissing, ref oMissing);//在document的开始部分添加一个paragraph.Word.Paragraph oPara1;oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);oPara1.Range.Text = "Heading 1";oPara1.Range.Font.Bold = 1;oPara1.Format.SpaceAfter = 24; //24 pt spacing after paragraph.oPara1.Range.InsertParagraphAfter();//在当前document的最后添加一个paragraphWord.Paragraph oPara2;object oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;oPara2 = oDoc.Content.Paragraphs.Add(ref oRng);oPara2.Range.Text = "Heading 2";oPara2.Format.SpaceAfter = 6;oPara2.Range.InsertParagraphAfter();//接着添加一个paragraphWord.Paragraph oPara3;oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;oPara3 = oDoc.Content.Paragraphs.Add(ref oRng);oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:";oPara3.Range.Font.Bold = 0;oPara3.Format.SpaceAfter = 24;oPara3.Range.InsertParagraphAfter();//添加一个3行5列的表格,填充数据,并且设定第一行的样式Word.Table oTable;Word.Range wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;oTable = oDoc.Tables.Add(wrdRng, 3, 5, ref oMissing, ref oMissing);oTable.Range.ParagraphFormat.SpaceAfter = 6;int r, c;string strText;for(r = 1; r <= 3; r++)for(c = 1; c <= 5; c++){strText = "r" + r + "c" + c;oTable.Cell(r, c).Range.Text = strText;}oTable.Rows[1].Range.Font.Bold = 1;oTable.Rows[1].Range.Font.Italic = 1;//接着添加一些文字Word.Paragraph oPara4;oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;oPara4 = oDoc.Content.Paragraphs.Add(ref oRng);oPara4.Range.InsertParagraphBefore();oPara4.Range.Text = "And here's another table:";oPara4.Format.SpaceAfter = 24;oPara4.Range.InsertParagraphAfter();//添加一个5行2列的表,填充数据并且改变列宽wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;oTable = oDoc.Tables.Add(wrdRng, 5, 2, ref oMissing, ref oMissing);oTable.Range.ParagraphFormat.SpaceAfter = 6;for(r = 1; r <= 5; r++)for(c = 1; c <= 2; c++){strText = "r" + r + "c" + c;oTable.Cell(r, c).Range.Text = strText;}oTable.Columns[1].Width = oWord.InchesToPoints(2); //Change width of columns 1 & 2oTable.Columns[2].Width = oWord.InchesToPoints(3);//Keep inserting text. When you get to 7 inches from top of the//document, insert a hard page break.object oPos;double dPos = oWord.InchesToPoints(7);oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range.InsertParagraphAfter();do{wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;wrdRng.ParagraphFormat.SpaceAfter = 6;wrdRng.InsertAfter("A line of text");wrdRng.InsertParagraphAfter();oPos = wrdRng.get_Information (Word.WdInformation.wdVerticalPositionRelativeToPage);}while(dPos >= Convert.ToDouble(oPos));object oCollapseEnd = Word.WdCollapseDirection.wdCollapseEnd;object oPageBreak = Word.WdBreakType.wdPageBreak;wrdRng.Collapse(ref oCollapseEnd);wrdRng.InsertBreak(ref oPageBreak);wrdRng.Collapse(ref oCollapseEnd);wrdRng.InsertAfter("We're now on page 2. Here's my chart:");wrdRng.InsertParagraphAfter();//添加一个chartWord.InlineShape oShape;object oClassType = "MSGraph.Chart.8";wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;oShape = wrdRng.InlineShapes.AddOLEObject(ref oClassType, ref oMissing, ref oMissing, ref oMissing, ref oMissing,ref oMissing, ref oMissing, ref oMissing);//Demonstrate use of late bound oChart and oChartApp objects to//manipulate the chart object with MSGraph.object oChart;object oChartApp;oChart = oShape.OLEFormat.Object;oChartApp = oChart.GetType().InvokeMember("Application",BindingFlags.GetProperty, null, oChart, null);//Change the chart type to Line.object[] Parameters = new Object[1];Parameters[0] = 4; //xlLine = 4oChart.GetType().InvokeMember("ChartType", BindingFlags.SetProperty,null, oChart, Parameters);//Update the chart image and quit MSGraph.oChartApp.GetType().InvokeMember("Update",BindingFlags.InvokeMethod, null, oChartApp, null);oChartApp.GetType().InvokeMember("Quit",BindingFlags.InvokeMethod, null, oChartApp, null);//... If desired, you can proceed from here using the Microsoft Graph //Object model on the oChart and oChartApp objects to make additional//changes to the chart.//Set the width of the chart.oShape.Width = oWord.InchesToPoints(6.25f);oShape.Height = oWord.InchesToPoints(3.57f);//Add text after the chart.wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;wrdRng.InsertParagraphAfter();wrdRng.InsertAfter("THE END.");//Close this form.this.Close();}使用模板生成通用格式Word文件:
如果您要使用自动化功能创建的文档都是通用格式,则利用基于预设格式的模板的新文档来开始创建过程会更加容易。与从头创建文档相比,将某个模板与 Word 自动化客户端配合使用有两大优点:
1.您可以对整个文档中的对象的格式设置和布局施加更多控制。
2.可以使用较少的代码创建文档。
通过使用模板,可以精确地调整表格、段落和其他对象在文档中的布局,并可为这些对象添加格式设置。通过使用自动化功能,可以基于包含下面这样的代码的模板创建新文档: 在模板中,可以定义书签,这样,自动化客户端就可以在文档的特定位置加入可变文本,如下所示: 使用模板的另一个优点在于,您可以创建和存储希望在运行时应用的格式样式,如下所示:
最主要的就是理解word application 的框架层次,其它的就像面向过程编程一样,一步步写代码,其中比较麻烦的是嵌套的表格。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了C#根据Word模版生成Word文的具体代码,供大家参考,具体内容如下1、指定的word模版2、生成word类添加comMicrosoftw
本文实例讲述了C#实现通过模板自动创建Word文档的方法,是非常实用的技巧。分享给大家供大家参考。具体实现方法如下:引言:前段时间有项目要用c#生成Word格式
如何用C#编程实现动态生成Word文档并填充数据的效果呢?要使用C#操作word,首先要添加引用1、添加引用->COM->MicrosoftWord11.0Ob
本文以实例形式讲述了C#解析JSON的方法,C#封装了对XML和JSON解析的类库,使用相当方便!具体用法如下:1.主要用到的类:主要用到了JavaScript
本文实例讲述了C#接口实现方法。分享给大家供大家参考。具体如下:在讲解C#实现接口的实例解析之前我们来看看C#接口的定义,如果一个类派生于一个接口,它就会执行某