C#创建Word文档
C#创建Word文档
通过编程的方式生成Word文档是程序员一个常见的需求,掌握如何使用C#操作Word文档成为程序员不可或缺的一项技能。想要对Word进行操作,通常需要使用第三方类库,例如NPOI,DocX等控件。本例使用了免费版的Spire.Doc组件,该组件的好处在于开发环境和部署环境均无需安装MS Word,代码逻辑也十分简洁明了。
下载按装Spire.Doc后,需要添加Spire.Doc.dll到Visual Studio,并在程序开头添加以下命名空间:
using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
接下来就是完整的C#代码:
//创建一个Document实例
Document doc = new Document();
//添加一个section
Section section = doc.AddSection();
//设置页面大小
section.PageSetup.PageSize = PageSize.A4;
//添加三个段落并写入文字
Paragraph title = section.AddParagraph();
title.AppendText("百度文库");
Paragraph paragraph1 = section.AddParagraph();
paragraph1.AppendText("百度文库是百度发布的供网友在线分享文档的平台。百度文库的文档由百度用户上传," +
"需要经过百度的审核才能发布,百度自身不编辑或修改用户上传的文档内容。" +
"网友可以在线阅读和下载这些文档。百度文库的文档包括教学资料、考试题库、专业资料、" + "公文写作、法律文件等多个领域的资料。百度用户上传文档可以得到一定的积分,下载有标价的文档则需要消耗积分。" +
"当前平台支持主流的
doc(.docx)、.ppt(.pptx)、.xls(.xlsx)、.pot、.pps、.vsd、.rtf、.wps、.et、.dps、.pdf、.txt 文件格式。");
Paragraph paragraph2 = section.AddParagraph();
paragraph2.AppendText("百度文库平台于2009年11月12日推出,2010年7月8日,百度文库手机版上线。2010年11月10日," +
"百度文库文档数量突破1000万。 2011年12月文库优化改版,内容专注于教育、PPT、专业文献、应用文书四大领域。" +
"2013年11月正式推出文库个人认证项目。截至2014年4月文库文档数量已突破一亿。");
//将第一段作为标题,设置标题格式
ParagraphStyle style1 = new ParagraphStyle(doc);
https://www.360docs.net/doc/a65453199.html, = "titleStyle";
style1.CharacterFormat.Bold = true;
style1.CharacterFormat.TextColor = Color.DarkBlue;
style1.CharacterFormat.FontName = "宋体(heading)";
style1.CharacterFormat.FontSize = 12f;
doc.Styles.Add(style1);
title.ApplyStyle("titleStyle");
//设置其余两个段落的格式
ParagraphStyle style2 = new ParagraphStyle(doc);
https://www.360docs.net/doc/a65453199.html, = "paraStyle";
style2.CharacterFormat.FontName = "宋体(body)";
style2.CharacterFormat.FontSize = 11f;
doc.Styles.Add(style2);
paragraph1.ApplyStyle("paraStyle");
paragraph2.ApplyStyle("paraStyle");
//设置三个段落的对齐方式
title.Format.HorizontalAlignment = HorizontalAlignment.Center; paragraph1.Format.HorizontalAlignment = HorizontalAlignment.Justify; paragraph2.Format.HorizontalAlignment = HorizontalAlignment.Justify; //设置段首缩进
paragraph1.Format.FirstLineIndent = 20f;
paragraph2.Format.FirstLineIndent = 20f;
//设置段落之间的间距
title.Format.AfterSpacing = 15f;
paragraph1.Format.AfterSpacing = 10f;
paragraph2.Format.AfterSpacing = 10f;
//添加表格
Table table = section.AddTable(true);
//指定表格的行数和列数(4行,4列)
table.ResetCells(4, 4);
//写入数据
table[0, 0].AddParagraph().AppendText("中文名");
table[1, 0].AddParagraph().AppendText("外文名");
table[2, 0].AddParagraph().AppendText("运行时间");
table[0, 1].AddParagraph().AppendText("百度文库");
table[1, 1].AddParagraph().AppendText("BaiduWenku");
table[2, 1].AddParagraph().AppendText("2009年11月12日");
table[0, 2].AddParagraph().AppendText("口号");
table[1, 2].AddParagraph().AppendText("文档数量");
table[2, 2].AddParagraph().AppendText("上线时间");
table[3, 2].AddParagraph().AppendText("入住机构数量");
table[0, 3].AddParagraph().AppendText("让每个人平等地提升自我");
table[1, 3].AddParagraph().AppendText("125,311,263(至2015年4月9日)"); table[2, 3].AddParagraph().AppendText("2009年");
table[3, 3].AddParagraph().AppendText("超过2600家");
//创建两个段落格式(应用于表格中的文字)
ParagraphStyle style3 = new ParagraphStyle(doc);
https://www.360docs.net/doc/a65453199.html, = "tableStyle1";
style3.CharacterFormat.FontSize = 10;
style3.CharacterFormat.TextColor = Color.Gray;
style3.CharacterFormat.FontName = "宋体(body)";
doc.Styles.Add(style3);
ParagraphStyle style4 = new ParagraphStyle(doc);
https://www.360docs.net/doc/a65453199.html, = "tableStyle2";
style4.CharacterFormat.FontSize = 10;
style4.CharacterFormat.TextColor = Color.Black;
style4.CharacterFormat.FontName = "宋体(body)";
doc.Styles.Add(style4);
//应用格式
for (int i = 0; i
{
for (int j = 0; j
{
if (table[i, j].Paragraphs.Count != 0)
{
Paragraph tableParagraph = table[i, j].Paragraphs[0];
if (j % 2 == 0)
{
tableParagraph.ApplyStyle("tableStyle1");
}
else
tableParagraph.ApplyStyle("tableStyle2");
}
}
}
//保存文档
doc.SaveToFile("C#创建Word.docx", FileFormat.Docx2013); 结果文档