彩票走势图

Word控件Spire.Doc 【邮件合并】教程(二):如何在 Silverlight 中使用邮件合并

翻译|使用教程|编辑:胡涛|2022-04-20 16:01:31.283|阅读 115 次

概述:本文将向您展示如何使用 Spire.Doc 通过比较两个 Word 文档来获取差异。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

 我们已经介绍了如何在 C# 和 VB.NET 中比较两个 Word 文档。从 Spire.Doc V8.12.14 开始,它支持在结构列表中获取两个 Word 文档之间的差异。本文将向您展示如何使用 Spire.Doc 通过比较两个 Word 文档来获取差异。

Spire.Doc for.NET 最新下载

介绍

邮件合并通常用于批量打印报表,例如财务报表、工资单或成绩单。合并后的文件可以通过电子邮件发送。

在本文中,我将展示一种通过 Spire.Doc 生成邮件合并报告的方法。

步骤

我们需要完成以下 3 个步骤来生成我们的报告。

  • 创建邮件合并模板。
  • 从数据库加载数据。
  • 将数据合并到模板中并保存。

每个步骤都包含几个子步骤,在#2 和#3 中我们需要编写一些代码。

创建邮件合并模板

模板是可重用的文档。它呈现了我们报告的模式。我们可以修改它来更改我们的报告,而无需修改任何代码。

注意:在本节中,所有表均指 DataTable 实例,而不是数据库中的物理表。

首先我们可以在 MS Word 或其他程序中创建模板。这是我们需要创建的模板。数据将填写在红方。

邮件合并传真

其次将 mail-merge-field 作为占位符插入红块中。邮件合并字段分为三种类型:

  • GeneralField 是一个通用的 Word 邮件合并字段。这是真实的数据字段,我们的数据将在合并过程中填写。
  • TableField 是辅助邮件合并字段,用作多个相关 GeneralField 和其他 TableField 的容器。所以它不是数据占位符,不会填写任何数据。它由两个特殊的邮件合并字段组成: TableStart: TableNameTableEnd: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);
}
}
结果

Mail Merge Fax


欢迎下载|体验更多E-iceblue产品

如需获取更多产品相关信息请咨询  



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP