使用Aspose.word导出word报告

      最近在做一个.net项目需要实现网站导出word报告功能,最终没有选择MS的word组件,因为过于庞大复杂。最终选择较为轻量级的Aspose.word组件。现在将使用Aspose.word组件的一些步骤及细节分享给大家,希望大家以后开发的时候少走弯路。

     1.使用Aspose.word组件离不开word模版的建立,所以第一步就是建立word模版,即你最终要生成报告的形式。做模版这个地方就使用到了强大的word,有很多方法:A.在word里添加书签;B.在word里添加MergeField。这里选择第二种做模版的方式来演示。

 打开word,找到插入菜单,选择文档部件,选择域:

使用Aspose.word导出word报告_第1张图片

找到MergeField,在域名文本框输入标识文字:

使用Aspose.word导出word报告_第2张图片


最终模版:

使用Aspose.word导出word报告_第3张图片

2.word模版做完以后就是在项目中添加对Aspose.word组件的引用了。

在VS里打开解决方案下的项目名,右键选择添加引用,找到Aspose.word.dll文件:

使用Aspose.word导出word报告_第4张图片

3.代码的编写这一块就很简单的,前台aspx界面不多说,主要讲aspx.cs代码,依次是:

A.添加Aspose.word命名空间,因为用到了文件的输入输出,所以别忘了IO:

    using Aspose.Words;

    using Aspose.Words.Saving;

    using System.IO;

B.找到word模版,规定输出文件:

    string tempPath = Server.MapPath("xixi.doc");         

    string outputPath = Server.MapPath("失效检验案例库完整报告.doc");

C.载入word模版:

    var doc = new Document(tempPath);

D.提供数据源,这里使用数组加Dataset的方法:

    String[] fieldNames = new String [] { "CaseName", "CompanyName", "caseInfo", "caseReason", "caseSummary", "caseAdvice" };           

     Object[] fieldValues = new Object[] { ds.Tables[0].Rows[0]["caseName"].ToString(), ds.Tables[0].Rows[0]["companyName"].ToString(), ds.Tables[0].Rows[0]["caseInfo"].ToString(), ds.Tables[0].Rows[0]["caseReason"].ToString(), ds.Tables[0].Rows[0]["caseSummary"].ToString(), ds.Tables[0].Rows[0]["caseAdvice"].ToString() };

E.合并模版:          

    doc.MailMerge.Execute(fieldNames, fieldValues);             

F.保存合并后的文档:         

    doc.Save(outputPath);

使用Aspose.word导出word报告_第5张图片

4.最终效果。

使用Aspose.word导出word报告_第6张图片

谢谢!!!!


你可能感兴趣的:(word,报告,Aspose.word)