
您可以将 Microsoft Excel 数据以自定义报告的形式呈现给您的用户,例如客户、利益相关者等。作为 Java 开发人员,您可以使用 Excel 电子表格作为数据表以编程方式生成此类报告。在本文中,您将学习如何使用 Java 从 Excel 数据生成报告。
本文讨论/涵盖了以下主题:
用于生成报告的 Java API
为了从 Excel 数据生成报告,我将使用 GroupDocs.Assembly for Java API。它使您能够构建强大的文档自动化和报告生成应用程序。它根据定义的模板文档从数据源中获取数据,组装它,并以指定的输出格式生成报告。该 API 支持从 XML、Excel、JSON 和 CSV 等各种数据源获取数据。您可以轻松地生成所有常用文件格式的报告,例如 PDF、HTML 和 Microsoft Word。
您可以 下载 API 的 JAR 或在您的基于 Maven 的 Java 应用程序中添加以下 pom.xml 配置来尝试下面提到的代码示例。
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-assembly</artifactId>
<version>21.7</version>
</dependency>
使用 Java 从 Excel 数据生成报告
按照下面提到的简单步骤,您可以轻松地在 Word 中从 Excel 数据生成报告:
- 获取Excel数据源
- 根据Excel数据定义一个模板
- Java 中将 Excel 数据转换为 Word 报告
Excel 数据源
您可以使用表格数据作为 Excel 电子表格中提供的数据源来生成报告。我将使用以下示例 Excel 数据来生成报告。这是客户与其各自经理的合同数据和约定的合同价格。

Excel 数据源
模板
您可以使用基于 Linq 的模板语法来创建模板。模板由描述模板结构和数据绑定的通用文档内容和标签组成。您可以在 DOCX 或 XLSX 文件中定义以下模板。此模板使您能够使用合同价格迭代合同的数据及其各自的经理。模板中的每个组都有一个由输入选择器定义的唯一键,并包含与该键关联的源枚举项。您可以使用 Key 属性访问组实例的密钥。创建模板后,您可以跳转到生成报告的代码。您可以在文档中阅读有关 模板语法 的更多信息。

报告模板
在 Java 中将 Excel 数据转换为 Word 报告
您可以按照以下步骤自动将 Excel 数据转换为基于模板的 DOCX 报告:
- 定义 Excel 数据文件、模板文件和 DOCX 输出报告文件路径
- 创建 DocumentTableOptions 类的实例
- 将 setFirstRowContainsColumnNames 设置为 true
- 使用定义的 Excel 数据文件和 DocumentTableOptions 创建 DocumentTable
- 创建 DocumentAssembler 类的实例
- 使用提供的 Excel 数据和定义的模板调用 assembleDocument() 方法
以下代码示例展示了如何使用 Java 根据定义的模板从 Excel 数据源生成报告。
String srcDocument = "C:\\Files\\template.docx";
String docReport = "C:\\Files\\Output.docx";
String dataFilePath = "C:\\Files\\Contracts_Data.xlsx";
// 设置从第一行提取列名。
DocumentTableOptions options = new DocumentTableOptions();
options.setFirstRowContainsColumnNames(true);
// 创建文档表
DocumentTable table = new DocumentTable(dataFilePath, 0, options);
// 创建文档汇编器
DocumentAssembler assembler = new DocumentAssembler();
// 收集数据并生成报告
assembler.assembleDocument(srcDocument,docReport,
new DataSourceInfo(new DataStorage(), null),
new DataSourceInfo(table,"ds"));

生成的报告
DocumentTableOptions 类提供了一组选项来控制从文档表中提取数据。我将 FirstRowContainsColumnNames 属性设置为 true,以便列标题不应该成为报表数据的一部分。
DocumentTable 类提供对位于外部文档中的单个表(或电子表格)的数据的访问,以便在组装文档时使用。
DocumentAssembler 类提供了各种方法来使用已定义的模板文档和数据生成报告。该类的 assembleDocument() 方法接受三个输入参数,即作为源文档的定义模板、输出文件路径和数据源。它根据提供的模板文档从数据源填充数据,并将生成的文档存储到目标路径。您可以将生成的文档保存为各种受支持的文件格式,例如 Word、Excel 或 HTML。
获得免费许可证
您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。
结论
在本文中,您学习了如何使用 Java 从 Excel 数据生成报告。您还学习了如何创建报告模板来生成报告。您可以使用 文档 了解有关 Java API 的 GroupDocs.Assembly 的更多信息。如有任何歧义,请随时在 论坛 上与我们联系。