没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:吉炜炜|2025-02-14 14:12:04.767|阅读 49 次
概述:在本文中,您将学习如何使用 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
文章转载自:慧都网创建报表系统时,确保报表工具与各种数据库兼容非常重要。FastReport .NET是 .NET 应用程序中广受欢迎的报表生成库之一。在本文中,我们将介绍如何在 FastReport .NET 中通过报表设计器和代码构建和连接 Firebird 插件。
如果您是开发人员、印刷专业人士或平面设计师,将PPTX/PPT文件转换为EMF 格式将为您带来诸多优势,例如平台独立性、布局处理能力等等。本文将特别介绍如何借助Aspose.Slides for .NET在 C# 中将 PPTX 转换为 EMF,并重点介绍具体步骤和代码示例。
本文将为大家介绍如何用图表控件LightningChart JS实现实时并行坐标图开发,欢迎下载新版组件体验!
本文主要介绍如何使用DevExpress WPF Grid控件检查节点,欢迎下载最新版组件体验!
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号