通过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);
//建立主从报表的关联
dataSet.Relations.Add(new DataRelation("ScoreListForUser", userTable.Columns["Id"], userScoreTable.Columns["UserId"])); //合并模版,相当于页面的渲染
doc.MailMerge.ExecuteWithRegions(dataSet);
doc.Save(savePath);

Aspose.Words五 MergeField的更多相关文章

  1. Aspose Word模板使用总结

    Aspose Word模板使用总结 1.创建word模版,使用MergeFeild绑定数据     新建一个Word文档,命名为Template.doc     注意:这里并不是输入"< ...

  2. aspose.word使用简单方法

    概念介绍 使用aspose生成word报表步骤: 加载word模板 提供数据源 填充 加载模板 提供了4种重载方法 public Document(); public Document(Stream ...

  3. Aspose.word总结

    1.创建word模版,使用MergeFeild绑定数据     新建一个Word文档,命名为Template.doc     注意:这里并不是输入"<”和“>”就可以了,而是必须 ...

  4. 使用Aspose.Cells利用模板导出Excel(C#)

    前言 随着互联网的流行,web项目逐渐占据主流.我相信大部分人开发项目的过程中都写过上传以及导出Excel和Word的功能,本文仅讨论导出Excel.C#中有很多第三方组件支持导出Excel,比如:N ...

  5. Pdf文件处理组件对比(Aspose.Pdf,Spire.Pdf,iText7)

    目的 因为公司是做医疗相关软件的,所以经常和文档打交道,其中就包含了Pdf.医院的Pdf(通常是他们的报告)都千奇百怪,而我们一直以来都是在用一些免费且可能已经没人维护了的组件来处理Pdf,所以就经常 ...

  6. aspose.word 使用简单方法

    aspose.word使用简单方法 概念介绍 使用aspose生成word报表步骤: 加载word模板 提供数据源 填充 加载模板 提供了4种重载方法 1 2 3 4 5 public Documen ...

  7. Aspose.Words导出图片 表格 Interop.Word

    先定义一个WORD 模板, 然后替换文本.域 ,定位开始表格 文本和段落 // Specify font formatting Aspose.Words.Font font = builder.Fon ...

  8. WPF使用Aspose.Words导出Word文档

    一.创建Word文档模板 分析需要导出的word文档,将固定的内容和由程序生成的内容分开; 创建一个word(例如:Template.doc)文档,将固定的内容按照一定的格式写入当前文档中; 打开Te ...

  9. 使用Aspose.word (Java) 填充word文档数据(包含图片填充)

    Aspose填充word数据 本文介绍了如何使用aspose进行word文档的生成,并提供了工具类供参考. 有问题欢迎 call 微信:905369866,小弟尽力而为..毕竟这玩意没吃透. 目录 A ...

随机推荐

  1. oracle vm突然黑屏了

    装完mongodb-compass后,我重启了下虚拟机,发现突然进不到ubuntu系统了,一开起来就黑屏.网上查了下有的说是显卡问题的,有说是内核问题的,但我啥都没干突然间就黑屏了.折腾了一下午没搞定 ...

  2. openwrt多wan限上下行速脚本,基于qosv4,imq模块替换成ifb模块[ZT]

    转自: http://www.right.com.cn/forum/thread-169414-1-1.html ,本人未经测试,转来自已备用 由于树莓派2装openwrt官方没有imq模块, 好像说 ...

  3. 最干净,最便捷的卸载Mysql

    由于没有卸干净Mysql,用一下就崩溃了,使用这个步骤,都不用重装系统 1,停止Mysql服务,卸载MySQL 2,删除安装目录及数据存放目录 注: 默认安装路径:C:\Program Files\M ...

  4. C#图像处理:截图程序(包含鼠标)

    截图后在picbox中显示,用定时器定时每毫秒截图一次,在picbox上显示就有动画效果.代码: [DllImport("user32.dll")] static extern b ...

  5. 命令行下IIS的配置脚本Adsutil.vbs

    命令行下IIS的配置脚本Adsutil.vbs 2009-08-20 12:26:52  www.hackbase.com  来源:Jackal's Blog Jackal's Blog文件存在于:C ...

  6. servlet、servlet容器和web应用程序的关系

  7. 有关于tomcat启动时,利用listener来执行某个方法

    今天,项目经理让我调查一下(目的是锻炼我),刚开始的时候说用listener来实现服务器启动然后某个项目跟着启动.其实就是tomcat启动的时候去执行某个方法,通过这个方法启动某个项目.我网上调查了一 ...

  8. HTTP中的Get与Post

    Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这 样认为:一个URL地址,它用于描述一个网络上的资源,而HTT ...

  9. 新手如何学习Java——Java学习路线图

    推荐初学者阅读:新手如何学习Java——Java学习路线图

  10. win10自带IE上不了网的解决办法

    1.cmd以管理员身份运行powershell. 2.输入以下三条程序. netsh int tcp set heuristics disabled 回车执行后再输入 netsh int tcp se ...