自动文档生成对于企业创建动态报告、发票和信函至关重要。通过 Aspose.Words Mail Merge for .NET,您可以高效地从各种来源(包括对象、CSV、JSON 和 XML)填充 Word 模板。本文将介绍如何在 C# 中利用邮件合并实现流畅且自动化的文档工作流程,特别关注 C# .NET 动态 Word 文档创建。
涵盖的主题:
Mail Merge for .NET 概述
Aspose.Words Mail Merge for .NET 允许开发人员从包含合并字段的预定义模板生成个性化文档。该插件旨在无缝集成至 .NET 环境,提供以下功能:
- 动态填充模板,支持 .NET 框架 Word 文档生成。
- 高效执行文档的批量生成,利用 .NET 邮件合并解决方案处理大型数据集。
- 在输出中保持一致的格式,有效提升 C# Word 文档模板最佳实践。
主要特性:
- 多源支持:使用来自对象、数据库、XML、JSON 和 CSV 的数据,与 C# 一起创建定制的 Word 文档。
- 高性能:高效处理大型数据集与批量操作,实现 .NET Core 的动态 Word 文档生成。
- 可自定义模板:创建带有数据插入占位符的模板,利用 .NET Word 邮件合并自动化 功能。
设置
使用 NuGet 安装 Aspose.Words:
PM> Install-Package Aspose.Words
使用 C# 对象从模板生成 Word 文档
首先,让我们看看如何使用 C# 对象填充 Word 模板。为此,我们将创建一个 Word 文档 (DOC/DOCX),其内容包含以下占位符:
<<[sender.Name]>> 说: "<<[sender.Message]>>."
在这里,sender 是我们将用于根据 C# 从数据库生成 Word 文档 方法填充模板的类的一个实例。
现在,我们可以使用 Aspose.Words 的报告引擎根据模板和 Sender 类的实例生成 Word 文档,按照以下步骤操作:
- 创建 Document 类的实例,并用 Word 模板的路径初始化。
- 创建并初始化 Sender 类的对象。
- 实例化 ReportingEngine 类。
- 使用 ReportingEngine.BuildReport() 填充模板,该方法需要文档实例、数据源和数据源名称作为参数。
- 使用 Document.Save() 方法保存生成的 Word 文档。
以下代码示例演示如何在 C# 中 从模板生成 Word 文档。
输出
使用 XML 数据源在 C# 中生成 Word 文档
要从 XML 数据源生成 Word 文档,我们将使用更复杂的 Word 模板,其包含以下占位符:
<<foreach [in persons]>>姓名: <<[Name]>>, 年龄: <<[Age]>>, 出生日期: <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
平均年龄: <<[persons.Average(p => p.Age)]>>
在本示例中使用的 XML 数据源如下所示。
要从 XML 数据源创建 Word 文档,请按照以下步骤进行:
- 创建 Document 类的实例,并用 Word 模板的路径初始化。
- 创建 XmlDataSource 类的实例,并用 XML 文件的路径初始化。
- 实例化 ReportingEngine 类。
- 像之前一样使用 ReportingEngine.BuildReport() 方法填充 Word 模板。
- 使用 Document.Save() 方法保存生成的 Word 文档。
以下代码示例演示如何在 C# 中 从 XML 数据源生成 Word 文档。
输出
使用 JSON 数据源在 C# 中生成 Word 文档
接下来,让我们探讨如何使用 JSON 数据源生成 Word 文档。在本示例中,我们将创建按管理者分组的客户列表。Word 模板将如下所示:
<<foreach [in managers]>>管理者: <<[Name]>>
合同:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>
我们将用以下 JSON 数据源来填充模板:
要从 JSON 生成 Word 文档,我们将使用 JsonDataSource 类来加载数据源,其他步骤与之前的结构保持一致。以下代码示例展示如何在 C# 中 从 JSON 模板生成 Word 文档。
输出
使用 CSV 数据源在 C# 中生成 Word 文档
要从 CSV 源生成 Word 文档,我们将利用以下 Word 模板:
<<foreach [in persons]>>姓名: <<[Column1]>>, 年龄: <<[Column2]>>, 出生日期: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
平均年龄: <<[persons.Average(p => p.Column2)]>>
该模板将使用以下 CSV 数据填充:
现在,让我们查看 C# 代码。步骤保持不变,唯一的主要区别是:我们将使用 CsvDataSource 类来加载 CSV 数据。以下代码示例说明如何 从 CSV 数据源生成 Word 文档。
输出
免费试用 Aspose.Words for .NET
您可以使用免费的 临时许可证 试用 Aspose.Words for .NET。
结论
在本文中,您学习了如何使用 C# 从模板生成 Word 文档。您发现了如何利用对象、XML、JSON 和 CSV 等各种数据源来实现 动态文档生成 .NET。通过浏览 文档 深入了解 .NET Word 模板处理 的能力,并随时通过我们的 论坛 与我们联系。