如何在 Java 中使用 GroupDocs.Parser 解析表格

在本教程中,您将学习 如何在 Java 中使用 GroupDocs.Parser 解析表格,这是一款用于从 PDF、Word 文件和电子表格中提取结构化数据的强大库。高效的表格提取可以显著加快发票处理、数据迁移和报表任务的速度。让我们一起走完整个工作流——从设置库到定义表格模板,再到最终提取所需数据。

介绍

高效地解析文档对于需要从 PDF、Word 文档或电子表格等多种格式中提取结构化数据的企业至关重要。自动化此过程可以节省时间并降低错误率。本综合指南将教您如何使用 GroupDocs.Parser for Java 在文档中定义并解析表格,这是一项用于简化文档处理工作流的关键技能。

快速答案

  • 主要目的是什么? 使用 Java 从文档中提取结构化表格数据。
  • 需要哪个库? GroupDocs.Parser for Java(v25.5 及以上)。
  • 需要许可证吗? 提供免费试用;生产环境需购买商业许可证。
  • 可以处理 PDF 和 Word 文件吗? 可以,库支持 PDF、DOCX、XLSX 以及许多其他格式。
  • 支持批量处理吗? 当然——可以在循环或并行流中处理多个文件。

您将学习的内容

  • 为 Java 设置 GroupDocs.Parser
  • 使用特定布局创建表格模板
  • 使用预定义模板解析文档
  • 这些功能的真实场景应用

阅读完本指南后,您将能够实现并优化自己的文档解析解决方案。让我们开始吧!

“如何解析表格” 在 GroupDocs.Parser 中的含义是什么?

解析表格指的是在文档中定位表格区域,映射行列,并提取每个单元格的文本内容。GroupDocs.Parser 提供基于模板的方法,让您描述表格的精确布局(列宽、行高),从而即使源文件在尺寸或样式上有所不同,解析引擎也能可靠地提取所需数据。

为什么选择 GroupDocs.Parser 进行表格提取?

  • 准确性: 基于布局的模板可降低误报。
  • 速度: 基于模板的解析比通用文本提取更快。
  • 灵活性: 支持 PDF、DOCX、XLSX 等多种格式,无需额外转换器。
  • 可扩展性: 适用于发票、报告和数据迁移流水线的批量处理。

前置条件

在深入代码之前,请确保您具备以下条件:

必需的库和依赖

  • GroupDocs.Parser for Java(版本 25.5 或更高)
  • 已在机器上安装 Maven
  • 基本的 Java 编程知识

环境搭建要求

  • Java Development Kit(JDK)8 及以上版本
  • IntelliJ IDEA、Eclipse 或 NetBeans 等 IDE

为 Java 设置 GroupDocs.Parser

要在项目中使用 GroupDocs.Parser,需要将其添加为依赖。操作如下:

Maven 配置

pom.xml 文件中添加以下仓库和依赖:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/parser/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-parser</artifactId>
      <version>25.5</version>
   </dependency>
</dependencies>

直接下载

或者,从 GroupDocs.Parser for Java releases 下载最新版本。

许可证获取

GroupDocs 提供免费试用以探索其功能。若需长期使用,请考虑购买许可证或获取临时许可证。

实现指南

现在您已经完成所有准备工作,下面深入了解如何定义和解析表格。

使用布局定义模板表格

此功能允许您创建具有特定列宽和行高的表格模板。操作步骤如下:

步骤 1:创建模板表格布局

通过指定列宽和行高来定义布局。

TemplateTableLayout layout = new TemplateTableLayout(
        Arrays.asList(new Double[]{30.0, 100.0, 320.0, 400.0, 480.0, 550.0}),
        Arrays.asList(new Double[]{320.0, 345.0, 375.0}));

步骤 2:创建表格模板

使用该布局实例化表格模板。

TemplateTable table = new TemplateTable(layout, "Details", null);

步骤 3:创建包含表格项的模板

将您的模板编译为单个 Template 对象。

Template template = new Template(Arrays.asList(new TemplateItem[]{table}));

通过模板解析文档

现在模板已经定义好,接下来使用它来解析文档。

步骤 1:创建 Parser 类的实例

使用目标文档初始化解析器。

try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/SampleInvoicePdf.pdf")) {
    // Assume 'template' is already defined as in the DefineTemplateTable feature
    Template template;
    
    // Step 2: Parse the Document by Predefined Template
    DocumentData data = parser.parseByTemplate(template);

步骤 2:遍历提取的数据项

循环遍历提取的数据并打印每个单元格的值。

for (int i = 0; i < data.getCount(); i++) {
    PageTableArea area = data.get(i).getPageArea() instanceof PageTableArea 
            ? (PageTableArea) data.get(i).getPageArea()
            : null;

    if (area != null) {
        for (int row = 0; row < area.getRowCount(); row++) {
            for (int column = 0; column < area.getColumnCount(); column++) {
                PageTextArea cellValue = area.getCell(row, column).getPageArea() instanceof PageTextArea
                        ? (PageTextArea) area.getCell(row, column).getPageArea()
                        : null;

                System.out.print(cellValue == null ? "" : cellValue.getText());
            }
            System.out.println();
        }
    }
}

故障排除提示

  • 常见问题: 确保文档路径正确且可访问。
  • 性能考虑: 在适用的情况下使用更小的模板以加快处理速度。

实际应用

以下是一些定义并解析表格的真实场景:

  1. 发票处理: 自动从发票中提取数据,简化会计流程。
  2. 数据迁移: 高效在不同系统或格式之间传输结构化数据。
  3. 报表工具: 直接从文档中提取关键指标生成报表。

性能考虑

为获得最佳性能,请参考以下建议:

  • 优化表格布局: 尽可能具体地定义表格布局,以减少解析时间。
  • 内存管理: 处理大型文档时监控内存使用,防止泄漏。
  • 批量处理: 若需处理多个文件,建议分批进行,以高效管理资源。

结论

在本教程中,您已经学习了 如何使用 GroupDocs.Parser for Java 解析表格。这款强大的库可以显著提升文档处理能力,使数据提取既快速又高效。想进一步探索 GroupDocs.Parser 的潜力,请查阅其 documentation 或尝试不同的模板和文件类型。

常见问题

  1. 什么是 GroupDocs.Parser?
    它是一款用于在 Java 中从各种文档格式中提取文本、元数据、图像和结构化数据的库。

  2. 我可以在其他编程语言中使用 GroupDocs.Parser 吗?
    可以,支持包括 C#、.NET、Python、PHP 等多种语言。

  3. 如何高效处理大文档?
    优化表格布局并考虑批量处理以提升性能。

  4. 是否支持非表格数据的提取?
    当然,GroupDocs.Parser 还能提取文本、图像和元数据。

  5. 在哪里可以找到更多 GroupDocs.Parser 示例?
    请查看 GitHub repositorydocumentation

资源

欢迎探索这些资源,获取更深入的信息和社区支持。祝编码愉快!


最后更新: 2026-02-09
测试环境: GroupDocs.Parser 25.5 for Java
作者: GroupDocs