加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Aspose.Words替换Word模板文本以及书签并导出文档(FOR ASP.NET)

(2013-12-14 18:35:52)

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"] = "第一标段";
            row1["GCMC"] = "工程";
            row1["JBFS"] = "手动搅拌";
            row1["HNTZL"] = "水泥";
            row1["SYRQ"] = "2013-12-3";
            row1["SJQD"] = "C30";
            row1["YHTJ"] = "温室培养";
            row1["ZZSM"] = "细心制作";
            row1["GCBWYT"] = "桥梁";
            row1["Remark"] = "测试";
            dtList.Rows.Add(row1);
            return dtList;
        }

        private DataTable GetCDataTable()
        {
            DataTable dtList = new DataTable();
            dtList.Columns.Add("ZJRQ", typeof(DateTime));
            dtList.Columns.Add("SYSJ", typeof(DateTime));
            dtList.Columns.Add("LQ", typeof(int));
            dtList.Columns.Add("SCCC");
            dtList.Columns.Add("SJBH");
            dtList.Columns.Add("PHHZ", typeof(double));
            dtList.Columns.Add("KYQD", typeof(double));
            dtList.Columns.Add("HSQD", typeof(double));
            dtList.Columns.Add("SJQDBFB", typeof(double));
            for (int i = 0; i < 3; i++)
            {
                DataRow row1 = dtList.NewRow();
                row1["ZJRQ"] = "2013-11-27";
                row1["SYSJ"] = "2013-12-3";
                row1["LQ"] = "7";
                row1["SCCC"] = "150*150*150";
                row1["SJBH"] = (i + 1).ToString();
                row1["PHHZ"] = (i * 17).ToString();
                row1["KYQD"] = (5.9 + i * 5).ToString();
                row1["HSQD"] = (i * 8).ToString();
                row1["SJQDBFB"] = (i * 10).ToString();

                dtList.Rows.Add(row1);
            }
            return dtList;
        }

四:导出Word文档,如图所示:

http://s9/mw690/001RW19egy6EZt4LQesb8&690ASP.NET)" TITLE="Aspose.Words替换Word模板文本以及书签并导出文档(FOR ASP.NET)" />
五:根据数据源以及Word模板和XML导出的Word文档,如下图所示:

http://s12/mw690/001RW19egy6EZt7rUG74b&690ASP.NET)" TITLE="Aspose.Words替换Word模板文本以及书签并导出文档(FOR ASP.NET)" />
六:备注:

Aspose.Words初学者,请多指教。本博文仅供学习参考。如需要本示例源代码,请在此博客上联系我。谢谢!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有