Aspose Word模板使用总结

来源:互联网 发布:手机搜索软件 编辑:程序博客网 时间:2024/05/16 04:41
1.创建word模版,使用MergeFeild绑定数据
    新建一个Word文档,命名为Template.doc

    注意:这里并不是输入"《”和“》”就可以了,而是必须在菜单的"插入→文档部件→域”找到MergeField并输入相应的域名

2.使用数组提供数据源
 string tempPath = Server.MapPath("~/Docs/Temp/Template.doc");
 string outputPath = Server.MapPath("~/Docs/Output/Template.doc");
 //载入模板
 var doc = new Document(tempPath);
 //提供数据源
 String[] fieldNames = new String[] {"UserName", "Gender", "BirthDay", "Address"};
 Object[] fieldValues = new Object[] {"张三", "男", "1988-09-02", "陕西咸阳"};
 //合并模版,相当于页面的渲染
 doc.MailMerge.Execute(fieldNames, fieldValues);
 //保存合并后的文档
 doc.Save(outputPath);

3.创建循环数据的模版,这里的循环数据类似页面的for结构,不拘泥于形式table

   «TableStart:UserList»

   姓名:«UserName»

   «TableEnd:UserList»

   

4.使用DataTable提供数据源

//创建名称为UserList的DataTable

DataTable table=new DataTable("UserList");

table.Columns.Add("UserName");

table.Columns.Add("Gender");

table.Columns.Add("BirthDay");

table.Columns.Add("Address");

//----------------------------------------------------------------------------------------------------

//载入模板

 var doc = new Document(tempPath);
 //提供数据源
 var datatable= GetDataTable();
 //合并模版,相当于页面的渲染
 doc.MailMerge.ExecuteWithRegions(datatable);
 var docStream = new MemoryStream();
 doc.Save(docStream, SaveOptions.CreateSaveOptions(SaveFormat.Doc));
 return base.File(docStream.ToArray(), "application/msword","Template.doc");

5.绑定带有子循环数据模版

6.使用DataSet提供数据源
 Document documentAspose = new Document("E:\\ApiService\\docx\\a.docx");


            DocumentBuilder builder = new DocumentBuilder(documentAspose);
            //用户表结构
            DataTable table = new DataTable("UserList");
            table.Columns.Add(new DataColumn("Id", typeof(int)));
            table.Columns.Add("UserName");
           


             var row= table.NewRow();
             row["Id"] = 1;
             row["UserName"] = "黄华东";


            var row1 = table.NewRow();
            row1["Id"] = 2;
            row1["UserName"] = "黄华东B";


            table.Rows.Add(row);
            table.Rows.Add(row1);
            //分数表结构
            DataTable table2 = new DataTable("ScoreList");
            table2.Columns.Add(new DataColumn("UserId", typeof(int)));
            table2.Columns.Add("Name");
            table2.Columns.Add("Score");


            var rowt = table2.NewRow();
            rowt["UserId"] = 1;
            rowt["Name"] = "语文";
            rowt["Score"] = "80";
            var rowm = table2.NewRow();
            rowm["UserId"] = 1;
            rowm["Name"] = "数学";
            rowm["Score"] = "90";




            var rowa = table2.NewRow();
            rowa["UserId"] = 2;
            rowa["Name"] = "语文";
            rowa["Score"] = "40";
            var rowb = table2.NewRow();
            rowb["UserId"] = 2;
            rowb["Name"] = "数学";
            rowb["Score"] = "30";




            table2.Rows.Add(rowt);
            table2.Rows.Add(rowm);


            table2.Rows.Add(rowa);
            table2.Rows.Add(rowb);




            //----------------------------------------------------------------------------------------------------
            //载入模板


            //提供数据源
            DataSet dataSet = new DataSet();
            var userTable = table;
            var userScoreTable = table2;
            dataSet.Tables.Add(userTable);
            dataSet.Tables.Add(userScoreTable);
            dataSet.Relations.Add(new DataRelation("ScoreListForUser", userTable.Columns["Id"], userScoreTable.Columns["UserId"]));
            //合并模版,相当于页面的渲染
            documentAspose.MailMerge.ExecuteWithRegions(dataSet);
            
            documentAspose.Save("E:\\ApiService\\docx\\huanghuadong_WTS.docx");

原创粉丝点击