Aspose.Words替换Word模板文本以及书签并导出文档
(FOR ASP.NET)
1.要引用Aspose.Words.dll,Xacrt.Word.dll(此程序集是我自定义的类库-主要功用就是根据Word模板以及XML配置文件动态导出我们想要的Word文件。此程序集是以Aspose.Words.dll为基础的。)
2.制作Word文档模板,如下图所示:
http://s7/mw690/001RW19egy6EZpIZgcm36&690ASP.NET)" TITLE="Aspose.Words替换Word模板文本以及书签并导出文档(FOR ASP.NET)" />
说明:"[SYBH]"等为要替换的文本。中间那个空白行有一个书签(Table),此书签可能标识在此处进行动态生成子表格操作。下面的“Reporter”,“ReportDate”为书签,此处内容也将被替换。
二:根据此Word模板配置XML文件,如下所示:
http://s3/mw690/001RW19egy6EZtK2MIG02&690ASP.NET)" TITLE="Aspose.Words替换Word模板文本以及书签并导出文档(FOR ASP.NET)" />
http://s12/mw690/001RW19egy6EZtRmb6rfb&690ASP.NET)" TITLE="Aspose.Words替换Word模板文本以及书签并导出文档(FOR ASP.NET)" />
三:给定数据源
protected void
btnImportWord_Click(object sender, EventArgs e)
{
try
{
string xmlPath =
Server.MapPath("~/Template/水泥混凝土抗压试验记录模板.xml");
ExWord exWord = new ExWord();
exWord.XmlConfigurePath = xmlPath;
DataTable mdt = GetMDataTable();
DataTable mdt1 = GetMDataTable1();
DataTable cdt = GetCDataTable();
Dictionary dic = new Dictionary();
dic.Add("dtMList",mdt);
dic.Add("dtCList",cdt);
dic.Add("dtMList1",mdt1);
exWord.ExReportToWord(dic);
}
catch (Exception ex)
{
throw ex;
}
}
private DataTable GetMDataTable1()
{
DataTable dtList = new DataTable();
dtList.Columns.Add("Reporter");
dtList.Columns.Add("ReportDate",
typeof(DateTime));
DataRow row1 = dtList.NewRow();
row1["Reporter"] = "张三";
row1["ReportDate"] = "2013-12-08";
dtList.Rows.Add(row1);
return dtList;
}
private DataTable GetMDataTable()
{
DataTable dtList = new DataTable();
dtList.Columns.Add("SYBH");
dtList.Columns.Add("HTH");
dtList.Columns.Add("CBDW");
dtList.Columns.Add("JLDW");
dtList.Columns.Add("SYDW");
dtList.Columns.Add("GCMC");
dtList.Columns.Add("JBFS");
dtList.Columns.Add("HNTZL");
dtList.Columns.Add("SYRQ", typeof(DateTime));
dtList.Columns.Add("SJQD");
dtList.Columns.Add("YHTJ");
dtList.Columns.Add("ZZSM");
dtList.Columns.Add("GCBWYT");
dtList.Columns.Add("Remark");
DataRow row1 = dtList.NewRow();
row1["SYBH"] = "XB-123456";
row1["HTH"] = "HTH-123456";
row1["CBDW"] = "第一标段承包处";
row1["JLDW"] = "第一监理";
row1["SYDW"] = "第一标段";