ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Aspose.Words五 MergeField

2021-03-15 14:34:22  阅读:275  来源: 互联网

标签:Rows userScoreTable userTable Add Words new Aspose MergeField Columns


通过MegerField来循环,将数据保存到dataset的table中,dataset通过关联datarelation字段来指定主从表关系。模板中通过标签TableStart和TableEnd来框定table的作用范围,主从表可以多层嵌套。

aspose.words下载

1>画模板,用wps或微软的office画出下图表格,其中带《》的文本是域。嵌套循环用TableStart和TableEnd来界定作用范围。

1.1>wfs添加域,插入>>文档部件>>域>>邮件合并,见图一

1.2> office添加域,插入>>文档部件>>域>>MergeField,见图二

 

图一

 图二

 

2>代码部分

string templateFile = Server.MapPath("score_tmplt.doc");

string savePath = Server.MapPath("score.doc");   //用户表(主表) DataTable userTable = new DataTable("UserList"); userTable.Columns.Add(new DataColumn("Id"typeof(int))); userTable.Columns.Add("UserName"); userTable.Columns.Add("Gender"); userTable.Columns.Add("BirthDay"); userTable.Columns.Add("Address"); userTable.Rows.Add(1, "菜鸟程序员1""男""83年""武汉"); userTable.Rows.Add(2, "菜鸟程序员2""男""88年""武汉");   //分数表(从表) DataTable userScoreTable = new DataTable("ScoreList"); userScoreTable.Columns.Add(new DataColumn("UserId"typeof(int))); userScoreTable.Columns.Add(new DataColumn("Id"typeof(int))); userScoreTable.Columns.Add("Name"); userScoreTable.Columns.Add("Score"); userScoreTable.Rows.Add(1, 1, "文科""100"); userScoreTable.Rows.Add(1, 2, "理科""100"); userScoreTable.Rows.Add(2, 3, "文科""100");   //载入模板 var doc = new Document(templateFile); //提供数据源 DataSet dataSet = new DataSet(); dataSet.Tables.Add(userTable); dataSet.Tables.Add(userScoreTable); <br>        //建立主从报表的关联 dataSet.Relations.Add(new DataRelation("ScoreListForUser", userTable.Columns["Id"], userScoreTable.Columns["UserId"]));   //合并模版,相当于页面的渲染 doc.MailMerge.ExecuteWithRegions(dataSet); doc.Save(savePath);

 

标签:Rows,userScoreTable,userTable,Add,Words,new,Aspose,MergeField,Columns
来源: https://www.cnblogs.com/sunhaiyan/p/14537427.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有