没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:吉炜炜|2025-02-14 14:12:04.767|阅读 65 次
概述:在本文中,您将学习如何使用 Spire.Doc for .NET 在 Word 文档中执行邮件合并。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
在本文中,您将学习如何使用 Spire.Doc for .NET 在 Word 文档中执行邮件合并。
首先,您需要将 Spire.Doc for.NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.Doc
想要生成带有合并域的模板 Word 文档,建议使用 Microsoft Word 等 Word 编辑器。Word 编辑器的视觉界面使您能够自由地设计模板的独特布局、格式和其他元素。
下图展示了如何使用 MS Word 向 Word 文档中添加邮件合并域。如果您想将图像合并到合并域中,请记得使用“Image:FieldName”格式。
如果您想要使用 C# 创建一个模板文档,请参照以下步骤:
using Spire.Doc; using Spire.Doc.Documents; namespace CreateTemplate { class Program { static void Main(string[] args) { // 创建一个 Document 对象 Document document = new Document(); // 添加一个节 Section section = document.AddSection(); // 添加一个段落 Paragraph paragraph = section.AddParagraph(); // 在段落中添加文本和邮件合并域 paragraph.AppendText("姓名:"); paragraph.AppendField("Name", FieldType.FieldMergeField); paragraph.AppendBreak(BreakType.LineBreak); paragraph.AppendText("邮件地址:"); paragraph.AppendField("Email", FieldType.FieldMergeField); paragraph.AppendBreak(BreakType.LineBreak); paragraph.AppendText("个人头像:"); paragraph.AppendField("Image:Avatar", FieldType.FieldMergeField); // 保存结果文档 document.SaveToFile("/模板.docx", FileFormat.Docx2019); // 释放资源 document.Dispose(); } } }
Spire.Doc 提供了 MailMerge.Execute() 方法,用于在 Word 文档中执行指定的邮件合并操作。该方法有 6 个重载版本,允许用户从不同的数据源(如 DataTable、DataView 和字符串数组)执行邮件合并。
使用数组提供的数据执行邮件合并的步骤如下:
using Spire.Doc; using Spire.Doc.Reporting; using System.Drawing; namespace MailMergeInDocument { class Program { static void Main(string[] args) { // 创建一个 Document 对象 Document document = new Document(); // 加载 Word 模板 document.LoadFromFile("/模板.docx"); // 指定合并域的名称 string[] fieldNames = { "Name", "Email", "Avatar" }; // 指定用来填充合并域的值 string[] fieldValues = { "谢雨", "xieyu @e-iceblue.com", "C:/Users/Administrator/Desktop/avatar.png" }; // 注册合并图片合并域时触发的事件 document.MailMerge.MergeImageField += new MergeImageFieldEventHandler(MailMerge_MergeImageField); // 将数据邮件合并到文档中 document.MailMerge.Execute(fieldNames, fieldValues); // 保存结果文档 document.SaveToFile("/邮件合并.docx", FileFormat.Docx2019); // 释放资源 document.Dispose(); } // 使用图片填充图像合并域 private static void MailMerge_MergeImageField(object sender, MergeImageFieldEventArgs field) { string filePath = field.FieldValue as string; if (!string.IsNullOrEmpty(filePath)) { field.Image = Image.FromFile(filePath); } } } }
这里的区域指的是文档中的特定区域,您可以在区域插入数据源中的数据。邮件合并会针对数据源中的每条记录重复该区域。Spire.Doc 提供了 MailMerge.ExecuteWithRegion() 方法来执行区域内的邮件合并。
使用 DataTable 提供的数据执行带区域的邮件合并的步骤如下:
using Spire.Doc; using System.Data; namespace MailMergeWithGroup { class Program { static void Main(string[] args) { // 创建一个 Document 对象 Document document = new Document(); // 加载模板 Word 文件 document.LoadFromFile("/邮件模板.docx"); // 创建一个 数据表,并指定表名 DataTable table = new DataTable("OrderDetails"); // 添加示例数据 table.Columns.Add("ProductName"); table.Columns.Add("Quantity"); table.Columns.Add("UnitPrice"); table.Columns.Add("TotalPrice"); table.Rows.Add("无线鼠标", "2", "39.99", "79.98"); table.Rows.Add("机械键盘", "1", "89.99", "89.99"); table.Rows.Add("电竞耳机", "3", "59.99", "179.97"); table.Rows.Add("显示器支架", "1", "49.99", "49.99"); // 在区域内执行邮件合并 document.MailMerge.ExecuteWidthRegion(table); // 保存修改后的文档 document.SaveToFile("/区域邮件合并.docx", FileFormat.Docx2019); // 释放资源 document.Dispose(); } } }
在执行嵌套分组的邮件合并时,系统会将嵌套区域内的合并域替换为按照层次结构组织的数据。嵌套区域可以创建更复杂的布局,其中一个区域的内容将依赖于另一个区域中的数据。
使用 XML 文件中的数据执行嵌套区域邮件合并的步骤如下:
using Spire.Doc;
using System.Collections;
using System.Data;
namespace MailMergeWithNestedRegions
{
class Program
{
static void Main(string[] args)
{
// 创建一个 Document 对象
Document document = new Document();
// 加载 Word 模板文档
document.LoadFromFile("/模板.docx");
// 从 XML 文件读取数据到 DataSet 对象
DataSet dataSet = new DataSet();
dataSet.ReadXml("/Orders.xml");
// 创建一个 List 对象,用以存储合并域信息
List list = new List();
// 创建两个 DictionaryEntry 对象,并将它们添加到列表中(每个对象指定合并域名称和相关的表达式)
DictionaryEntry dictionaryEntry = new DictionaryEntry("Customer", string.Empty);
list.Add(dictionaryEntry);
dictionaryEntry = new DictionaryEntry("Order", "Customer_Id = %Customer.Customer_Id%");
list.Add(dictionaryEntry);
// 执行嵌套区域的邮件合并
document.MailMerge.ExecuteWidthNestedRegion(dataSet, list);
// 保存结果文件
document.SaveToFile("嵌套区域的邮件合并.docx", FileFormat.Docx2019);
// 释放资源
document.Dispose();
}
}
}
慧都是E-iceblue的官方授权代理商,提供Spire系列产品免费试用,咨询,正版销售等于一体的专业化服务。
下载|体验更多E-iceblue产品,请联系在线客服咨询,或拨打产品热线:023-68661681
加入E-iceblue技术交流QQ群(767755948),与更多小伙伴一起探讨提升开发技能。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:慧都网本文档包含了有关安装和使用DevExpress WPF v25.1版本控件的系统要求信息。
通过本篇教程,您将学习如何借助Aspose.HTML通过 .NET 实现 Python 将 SVG 转换为 PDF 。
PDF 是数字文档管理的普遍格式,但其固定布局特性限制了在需要灵活编辑、更新或现代工作流集成场景下的应用。相比之下,Markdown(.md)语法轻量、易读,非常适合网页发布、文档编写和版本控制。本文将介绍如何使用 Spire.PDF for Python 库,在 Python 中高效实现 PDF 到 Markdown 的单文件转换与批量转换。
在这个人工智能时代,Markdown因其易用性而备受重视。本指南将介绍如何借助Aspose.HTML,以 Python 编程方式将HTML转换为 Markdown。
Spire.Doc for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。
Spire.Doc for JavaSpire.Doc for Java是Java Word组件,具有生成、读取、转换Word文档等功能
Spire.Doc for PythonSpire.Doc for Python是专为开发人员设计的专业 Word Python API
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号