`
jiasongmao
  • 浏览: 647851 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

使用Aspose.word导出word报告

    博客分类:
  • .NET
 
阅读更多

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

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

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

 

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

 

最终模版:

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

 

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

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);

 

 

 

4.最终效果。

谢谢!!!!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics