最近由于工作需要,满足能生成简单的word 格式文件,领导推荐DocX不错,遂短时间内研究上手DocX。我喜欢新鲜,有点难度挑战的活儿哈哈,谁让咱是老菜鸟呢
1. 啥是DocX
微软的Office 从2007版本后新增了DocX格式的word文档。它的特点是将文本和资源以xml格式存储成zip文件,因此它的体积比以往的word文档格式都要小的多。并且微软专门推出了针对DocX格式文档的xml操作封装库Open XML SDK,。由此我们得出了以下结论:
DocX格式不兼容office07以前的版本。
DocX.net 开源是对微软针对DocX的SDK的高级封装。
DocX.net 的CodePlex 地址:http://docx.codeplex.com/, 要使用Docx.net 你需要安装.net 4.0 以及以上的版本和vs2010 以及以上版本。
截止目前最新版本源代码下载:http://download-codeplex.sec.s-msft.com/Download/SourceControlFileDownload.ashx?ProjectName=docx&changeSetId=90663
2. DocX.net 简单入门
下载源代码后Examples 项目中包含全部的示例,使用起来很方便。例如我需要在word 中插入一个表格并且填写相关内容。
string path = @"docs\TestTable.docx";
// Create a document.
using (DocX document = DocX.Create(path))
{
// Add a Table into the document.2 columns 2 rows
Table table = document.AddTable(2, 2);
//table is center of the document
table.Alignment = Alignment.center;
// table's with is auto with document'width
table.AutoFit = AutoFit.Window;
Console.WriteLine(table.Xml);
table.Rows[0].Cells[0].Paragraphs[0].Append("1");
table.Rows[0].Cells[1].Paragraphs[0].Append("2");
table.Rows[1].Cells[0].Paragraphs[0].Append("3");
table.Rows[1].Cells[1].Paragraphs[0].Append("4");
//add a row
Row newRow = table.InsertRow(table.Rows[1]);
newRow.ReplaceText("4", "5");
//输出table 的xml 文档
Console.WriteLine(table.Xml);
document.InsertTable(table);
// Save this document.
document.Save();
我发现生成的表格在wps中打开后宽度不是跟文档一致,这个问题曾困扰了我一个周末的时间,请教了几个博客园的朋友帮忙,最后还是发现不管设置AutoFit 还是设置各个单元格的width都不行,最后是怀疑到了wps 可能跟office 显示效果不一样,安装了个office 打开一看表格宽度正常了,辛亏目前项目只要求考虑office的,不然有点麻烦,不过解决这个问题也是有办法可,留待DocX.net使用说明下一篇
欢迎推荐一些开源的小系统,要求是能用,好用,方便,我有时间研究研究同时写出使用心得,为后来者快速入手带来帮助。
如果您觉得我的文章对您有所帮助,欢迎扫码进行赞赏!