在 Java 中从 Excel 数据生成报告

您可以将 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 数据生成报告:

  1. 获取Excel数据源
  2. 根据Excel数据定义一个模板
  3. Java 中将 Excel 数据转换为 Word 报告

Excel 数据源

您可以使用表格数据作为 Excel 电子表格中提供的数据源来生成报告。我将使用以下示例 Excel 数据来生成报告。这是客户与其各自经理的合同数据和约定的合同价格。

Excel 数据源

Excel 数据源

模板

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

报告模板

报告模板

在 Java 中将 Excel 数据转换为 Word 报告

您可以按照以下步骤自动将 Excel 数据转换为基于模板的 DOCX 报告:

以下代码示例展示了如何使用 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 _property 设置为 true,以便列标题不应该成为报告数据的一部分。

**DocumentTable ** 类提供对位于外部文档中的单个表(或电子表格)的数据的访问,以在组装文档时使用。

DocumentAssembler 类提供了各种方法来使用已定义的模板文档和数据生成报告。该类的 assembleDocument**()** 方法接受三个输入参数,定义的模板作为源文档、输出文件路径和数据源。它根据提供的模板文档从数据源填充数据,并将生成的文档存储到目标路径。您可以将生成的文档保存为各种受支持的文件格式,例如 Word、Excel 或 HTML。

获得免费许可证

您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。

结论

在本文中,您学习了如何使用 Java 从 Excel 数据生成报告。您还学习了如何创建报告模板以生成报告。您可以使用 文档 了解有关 Java API 的 GroupDocs.Assembly 的更多信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看