使用C#从模板生成Word

自动化文档生成对于希望创建动态报告、发票和信件的企业至关重要。使用 Aspose.Words Mail Merge for .NET,您可以高效地使用来自各种来源的数据填充Word模板,包括对象、CSV、JSON和XML。本指南将指导您如何在C#中利用邮件合并进行简化和自动化的文档工作流,重点是 使用C# .NET动态创建Word文档


目录


Mail Merge for .NET概述

Aspose.Words Mail Merge for .NET 插件使开发人员能够从包含合并字段的预定义模板创建个性化文档。该集成旨在在.NET环境中无缝使用,提供以下功能:

  • 动态填充模板数据,支持 .NET框架Word文档生成
  • 高效执行批量文档生成,利用 .NET邮件合并解决方案生成Word文档
  • 确保输出格式一致,增强 C# Word文档模板最佳实践

主要特性:

  1. 多源支持:利用对象、数据库、XML、JSON和CSV中的数据创建自定义Word文档。
  2. 高性能:高效处理大型数据集和批量操作,实现 使用.NET Core动态生成Word文档
  3. 可定制模板:创建带有数据插入占位符的模板,利用 .NET Word邮件合并自动化 功能。

设置

要开始使用,请通过NuGet安装Aspose.Words:

PM> Install-Package Aspose.Words

使用C#对象从模板生成Word文档

让我们开始使用C#对象填充Word模板。我们将创建一个Word文档(DOC/DOCX),其中包含以下占位符:

<<[sender.Name]>> says: "<<[sender.Message]>>."

在这个例子中,sender 是我们将用来填充模板的类的一个实例,使用 C#从数据库生成Word文档 的方法。

接下来,我们将使用 Aspose.Words 的报告引擎从模板和 Sender 类的实例生成Word文档,步骤如下:

  1. 创建一个 Document 类的实例,并用Word模板的路径初始化它。
  2. 创建并初始化一个 Sender 类的对象。
  3. 实例化 ReportingEngine 类。
  4. 使用 ReportingEngine.BuildReport() 填充模板,该方法接受Document的实例、数据源和数据源名称作为参数。
  5. 使用 Document.Save() 保存生成的Word文档。

以下代码示例演示如何在C#中 从模板生成Word文档

输出

从XML数据源生成Word文档

要从XML数据源生成Word文档,我们将使用一个更复杂的Word模板,包含以下占位符:

<<foreach [in persons]>>Name: <<[Name]>>, Age: <<[Age]>>, Date of Birth: <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
Average age: <<[persons.Average(p => p.Age)]>>

本例中使用的XML数据源如下所示。

要从XML数据源创建Word文档,请按照以下步骤操作:

  1. 创建一个 Document 类的实例,并用Word模板的路径初始化它。
  2. 创建一个 XmlDataSource 类的实例,并用XML文件的路径初始化它。
  3. 实例化 ReportingEngine 类。
  4. 使用 ReportingEngine.BuildReport() 方法填充Word模板。
  5. 使用 Document.Save() 方法保存生成的Word文档。

以下代码示例演示如何在C#中 从XML数据源生成Word文档

输出

从JSON数据源生成Word文档

接下来,让我们探讨如何使用JSON数据源生成Word文档。在这个例子中,我们将创建一个按经理划分的客户列表。Word模板将如下所示:

<<foreach [in managers]>>Manager: <<[Name]>>
Contracts:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

我们将用来填充模板的JSON数据源如下:

要从JSON生成Word文档,我们将使用 JsonDataSource 类加载数据源,其余步骤将遵循之前的结构。以下代码示例演示如何在C#中 从JSON模板生成Word文档

输出

从CSV数据源生成Word文档

要从CSV源生成Word文档,我们将利用以下Word模板:

<<foreach [in persons]>>Name: <<[Column1]>>, Age: <<[Column2]>>, Date of Birth: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
Average age: <<[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模板处理 功能的进一步见解,请深入了解 文档,并随时通过我们的 论坛 与我们联系。