该报告生成过程更通常由含填充为所需的字段中的占位符的预定义文档模板的。报告引擎将模板文档作为输入,用数据动态填充占位符并生成结果报告。本文也将展出类似用途的情况下,你可以生成的Word文档通过填充Word模板 动态和编程使用的Java。
为了从 DOCX 模板生成 Word 文档,我们将使用Aspose.Words for Java API提供的LINQ 报告引擎。LINQ 报告引擎支持 Word 模板的文本、图像、列表、表格、超链接和书签的各种标签。包含这些标签的模板文档由引擎使用来自 Java 对象以及XML、JSON或CSV数据源的数据填充。因此,让我们开始使用 Java 从模板生成 Word 文档。
本文将介绍如何使用以下模板从模板生成 Word 文档:
- 来自 Java 对象的值,
- XML 数据源,
- JSON 数据源,
- 和 CSV 数据源。
安装 Aspose.Words for Java – Word 自动化和报告生成 API
您可以下载Aspose.Words for Java JAR或使用以下配置将其添加到基于 Maven 的应用程序中。
存储库
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
依赖
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>20.1</version>
<type>pom</type>
</dependency>
使用 Java 对象从模板生成 Word 文档
要开始生成报告,让我们首先通过使用来自 Java 对象的值填充模板来创建 Word 文档。为了定义文档模板,创建一个新的 Word 文档,插入以下标签并将其保存为 DOCX 文档。
<<[s.getName()]>> says: "<<[s.getMessage()]>>."
在上面的模板中,“ s ”将被视为将用于填充标签的 Java 类的对象。因此,让我们创建一个名为Sender的类,其中包含两个数据成员。
现在,是时候将 Word 模板传递给 LINQ 报告引擎并根据Sender对象的值生成 Word 文档了。以下是生成Word文档的步骤:
- 创建Document对象并使用模板的路径对其进行初始化。
- 创建并初始化Sender类的对象。
- 创建ReportingEngine类的对象。
- 使用ReportingEngine.buildReport()方法构建报告,该方法接受文档模板、数据源和数据源名称。
- 使用Document.save()方法保存生成的 Word 文档。
以下代码示例展示了如何使用 Java 对象的值从 Word 模板生成 Word 文档。
输出
使用 XML 数据从模板创建 Word 文档
现在让我们更进一步,看看如何在一个有点复杂的场景中使用 XML 数据源填充 Word 模板。以下是我们将用于填充 Word 模板的 XML 数据源。
在这种情况下,我们将在模板文档中为 XML 数据源中的多个记录使用以下标记。
<<foreach [in persons]>>Name: <<[Name]>>, Age: <<[Age]>>, Date of Birth: <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
Average age: <<[persons.average(p => p.Age)]>>
在这种情况下,用于生成 Word 文档的 Java 代码将相同,除了将 Java 对象作为数据源传递之外,我们将在ReportingEngine.buildReport()方法中传递XmlDataSource对象。以下代码示例展示了如何通过使用 Java 中的 XML 数据源填充文档模板来创建 Word 文档。
输出
使用 JSON 数据从模板生成 Word 文档
现在让我们看看如何使用 JSON 数据源从 DOCX 模板生成 Word 文档。以下是我们将在此示例中使用的 JSON 数据。
在此示例中,我们将生成包含按经理分组的客户列表的 Word 文档。根据这种情况,DOCX 模板将如下所示:
<<foreach [in managers]>>Manager: <<[Name]>>
Contracts:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>
为了加载 JSON 数据源,Aspose.Words提供了JsonDataSource类。以下代码示例展示了如何使用 Java 中的 JSON 数据源从模板创建 Word 文档。
输出
使用 CSV 数据从模板生成 Word 文档
最后但并非最不重要的一点,让我们看看如何通过使用以下 CSV 数据源填充 Word 模板来生成 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 数据源,Aspose.Words提供了CsvDataSource类。以下代码示例展示了如何使用 Java 中的 CSV 数据源生成 Word 文档。
输出
了解有关 LINQ 报告引擎的更多信息
LINQ 报告引擎支持多种标签,用于在 Java 中动态生成功能齐全的 Word 文档。您可以在本文中探索有关这些标签及其语法的更多信息。
如果您有任何问题或疑问,可以发帖到Aspose.Words 论坛。