Word控件Spire.Doc 【邮件合并】教程(二):如何在 Silverlight 中使用邮件合并
我们已经介绍了如何在 C# 和 VB.NET 中比较两个 Word 文档。从 Spire.Doc V8.12.14 开始,它支持在结构列表中获取两个 Word 文档之间的差异。本文将向您展示如何使用 Spire.Doc 通过比较两个 Word 文档来获取差异。
Spire.Doc for.NET 最新下载
欢迎下载|体验更多E-iceblue产品 技术交流Q群(767755948)
介绍
邮件合并通常用于批量打印报表,例如财务报表、工资单或成绩单。合并后的文件可以通过电子邮件发送。
在本文中,我将展示一种通过 Spire.Doc 生成邮件合并报告的方法。
步骤
我们需要完成以下 3 个步骤来生成我们的报告。
- 创建邮件合并模板。
- 从数据库加载数据。
- 将数据合并到模板中并保存。
每个步骤都包含几个子步骤,在#2 和#3 中我们需要编写一些代码。
创建邮件合并模板
模板是可重用的文档。它呈现了我们报告的模式。我们可以修改它来更改我们的报告,而无需修改任何代码。
注意:在本节中,所有表均指 DataTable 实例,而不是数据库中的物理表。
首先,我们可以在 MS Word 或其他程序中创建模板。这是我们需要创建的模板。数据将填写在红方。
其次,将 mail-merge-field 作为占位符插入红块中。邮件合并字段分为三种类型:
- GeneralField 是一个通用的 Word 邮件合并字段。这是真实的数据字段,我们的数据将在合并过程中填写。
- TableField 是辅助邮件合并字段,用作多个相关 GeneralField 和其他 TableField 的容器。所以它不是数据占位符,不会填写任何数据。它由两个特殊的邮件合并字段组成: TableStart: TableName和TableEnd:TableName。在合并过程中,同一个 TableField 所包含的相关 GeneralField 的数据将来自同一个数据表。
- GroupField 也是辅助邮件合并字段。它可以包含多个相关的 GeneralFields 和 TableFields。它由两个特殊的邮件合并字段组成: GroupStart: GroupName和 GroupEnd: GroupName。在合并过程中,将复制 GroupField 中包含的所有 Word 文档元素。数据表中的一行有一个副本,该行中的数据将填充到副本中的字段中。如果该行有子数据表,则子数据表中的数据将填充到相应的TableField中包含的字段中。如果子数据表有多个数据行,对应的TableField也会被复制填充。我们需要在模板正文的顶部插入一个名为GroupStart:Order的邮件合并字段,并插入一个名为的邮件合并字段GroupEnd:OrderM在模板主体的底部。
在此 Silverlight 应用程序中,我们仅使用 GeneralField。如下图所示。将邮件合并字段作为占位符插入红块。
加载数据
Spire.Doc 提供来自各种数据源的合并数据。该程序合并用户填充的字符串数组中的数据。
using Spire.Doc; using System; using System.IO; namespace MailMerge { class Program { static void Main(string[] args) { String[] fieldNames = new String[] { "Contact Name", "Fax", "From", "Date", "Subject", "Content" }; DateTime faxDate = this.datePickerFaxDate.SelectedDate.HasValue ? this.datePickerFaxDate.SelectedDate.Value : DateTime.Now; String[] fieldValues = new String[] { this.textBoxTo.Text, this.textBoxFax.Text, this.textBoxFrom.Text, faxDate.ToShortDateString(), this.textBoxSubject.Text, this.textBoxContent.Text }; this.documentTemplate.MailMerge.Execute(fieldNames, fieldValues);bool? result = this.saveFileDialog.ShowDialog(); if (result.HasValue && result.Value) { using (Stream stream = this.saveFileDialog.OpenFile()) { //this.documentTemplate.SaveToStream(stream, FileFormat.Doc); this.documentTemplate.SaveToFile(stream, FileFormat.Doc); }} } } }
将数据合并到模板中并保存
在本节中,我们需要编写一些代码来调用 Spire.Doc 来合并我们的数据和模板。this.documentTemplate.MailMerge.Execute(fieldNames, fieldValues);bool? result = this.saveFileDialog.ShowDialog(); if (result.HasValue && result.Value) { using (Stream stream = this.saveFileDialog.OpenFile()) { //this.documentTemplate.SaveToStream(stream, FileFormat.Doc); this.documentTemplate.SaveToFile(stream, FileFormat.Doc); } }
结果
Word控件Spire.Doc 【邮件合并】教程(二):如何在 Silverlight 中使用邮件合并相关推荐
- Word控件Spire.Doc 【页面设置】教程(5) 如何在 C# 中删除分页符
在 Word 文档中,用户可以添加新的分页符或删除现有的分页符.此示例显示如何使用 Spire.Doc 从 word 文档中删除分页符.Spire.Doc支持从.docx..doc.RTF等格式的wo ...
- Word控件Spire.Doc 【Table】教程(16):C#/VB.NET:在 Word 表格中插入或提取图像
Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Micr ...
- Word控件Spire.Doc 【书签】教程(1):在C#/VB.NET:在 Word 中插入书签
Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Micr ...
- Word控件Spire.Doc 【Table】教程(7): 如何在C#中用表格替换word文档中的文本
Spire.Doc for .NET 是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Mic ...
- Word控件Spire.Doc 【加密解密】教程(一):在 C#、VB.NET 中使用自定义密码加密、解密、保护 Word
Word 加密是保护 Word 文档的一种方法,它要求用户为文档提供密码.没有密码,加密文件无法打开.本指南中的解决方案演示了如何通过 Spire.Doc for .NET 在 C# 和 VB.NET ...
- Word控件Spire.Doc 【页面背景】教程(9) ;C#/VB.NET:从 Word 文档中删除文本或图像水印
可以将水印添加到 Word 文档中,以告知其他人文档的所有权或状态.有时,您可能希望删除 Word 文档中的现有水印.本文将演示如何使用Spire.Doc for .NET从 C# 和 VB.NET ...
- Word控件Spire.Doc 转换教程(九):在 Doc 转PDF 转换期间设置图像质量
您可能会好奇为什么我们在将Doc 转换为 PDF时设置图像质量.在我们转换Word文档后,尤其是文档中有很多图像,输出的PDF文档的大小明显大于原始的Doc文件.现在,Spire.Doc 新版本的新功 ...
- Word控件Spire.Doc 【邮件合并】教程(四):如何使用邮件合并合并图像值
上一篇文章我们展示了如何使用 Spire.Doc创建邮件合并模板并将文本值合并到它.众所周知,除了文本值之外,我们还使用邮件合并功能来合并图像值.本文将演示如何在 C# 中将图像值合并到邮件合并模板中 ...
- Word控件Spire.Doc 【邮件合并】教程(五): 在 C# 中为组创建邮件合并
在 Spire.Doc 中,我们可以使用邮件合并将数据源中的多条记录插入到 Word 模板文档中的指定区域.该区域必须由两个具有特殊名称的合并文件标记,如«GroupStart:GroupName»和 ...
最新文章
- 机器学习常用术语词汇表
- idea中 maven打包时时报错User setting file does not exist C:\Users\lenevo\.m2\setting.xml,
- 构造函数,析构函数,对象连的简单应用
- java基础---serializable的作用
- java doc转pdf_java 完美解决 ppt/pptx 转pdf 源码
- 定义const变量是不可以赋值_JavaScript的声明方法和作用范围,常见的结构赋值类型和使用场景...
- StarkSoft题库管理系统
- 考研总分多少能去辽师_考研英语作文平均分出炉,你拖后腿了吗?
- android 圆点指示器,ViewPager加上小圆点指示器效果
- JavaScript正则表达式与注册验证
- 语言判断一个整数是奇数还是偶数_一个变量“存储”任意多的数 从“康托配对函数”聊开去...
- javascript时钟代码 DEMO-002
- 嵌入式软件开发的特点和流程
- 半部秘籍--分类、回归、集成与无监督
- 期货反向对冲核心思维跟单策略
- 经营养生理疗馆要注意什么问题?
- write-back与Write-through
- 确实实惠:海淘买鞋的经历:6PM +笨鸟海淘转运(单号: CN150625417260)
- SD卡的驱动(linux操作系统下)
- 结构体构造和析构函数