如何使用 Java Excel 解析库与 GroupDocs.Parser
在现代数据驱动的应用程序中,如何解析 Excel 文件的效率可能决定工作流的成败。无论是迁移旧数据、生成自动化报告,还是将原始文本输入分析管道,从每个工作表提取未格式化的文本都是常见需求。本教程展示如何使用 Java Excel 解析库——GroupDocs.Parser for Java,打开 Excel 工作簿、遍历其工作表,并仅用几行代码获取原始内容。
快速答案
- 哪个库在 Java 中处理 Excel 解析? GroupDocs.Parser for Java。
- 我可以从每个工作表提取原始文本吗? 是的,使用启用原始模式的
TextReader。 - 我需要许可证吗? 可提供临时免费许可证用于评估。
- 需要哪个 Java 版本? JDK 8 或更高。
- 支持 Maven 吗? 当然——将仓库和依赖添加到
pom.xml。
什么是 Java Excel 解析库?
GroupDocs.Parser for Java 是一个 java excel parsing library,可以编程方式打开 .xlsx、.xls 或 CSV 工作簿,并在不将完整电子表格加载到内存中的情况下读取纯文本。这种方式比传统的电子表格 API 更快,并让您直接访问底层字符。
为什么使用 GroupDocs.Parser for Java?
GroupDocs.Parser 每次处理一个工作表,即使是 500 页的工作簿,内存使用也保持在 10 MB 以下。它支持超过 10 种输入和输出格式——包括 XLSX、XLS、CSV、ODS——因此单一 API 可处理多种电子表格类型。简洁流畅的方法让您在几分钟内开始提取文本,且许可模型可从试用平滑过渡到生产,无需更改代码。
前置条件
- Java 开发工具包 (JDK): 8 或更高。
- IDE: IntelliJ IDEA、Eclipse 或任何兼容 Java 的编辑器。
- Maven(可选): 用于简化依赖管理。
设置 GroupDocs.Parser for Java
Maven 设置
如果您使用 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 发布 下载最新版本的 GroupDocs.Parser for Java。
获取许可证
要开始免费试用,请访问 GroupDocs 网站 获取临时许可证。这使您能够在购买正式许可证前评估库的全部功能。
基本初始化和设置
GroupDocs.Parser 是表示文档解析器的核心类。将库添加到类路径后,您可以创建指向 Excel 工作簿的 Parser 实例:
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.TextReader;
import com.groupdocs.parser.options.IDocumentInfo;
import com.groupdocs.parser.options.TextOptions;
String excelFilePath = "YOUR_DOCUMENT_DIRECTORY/sample.xlsx";
try (Parser parser = new Parser(excelFilePath)) {
// Your code to work with the document
} catch (Exception e) {
e.printStackTrace();
}
环境准备就绪后,让我们深入实际的提取逻辑。
如何解析 Excel:从工作表提取原始文本
加载工作簿并在两个简单步骤中检索原始文本。首先获取基本文档信息,如工作表名称和尺寸。然后,使用配置了 TextOptions(true) 的 TextReader 迭代每个工作表,以启用原始模式,返回不含任何格式标签的纯字符。
TextReader 从文档读取文本,可选择原始模式。
IDocumentInfo spreadsheetInfo = parser.getDocumentInfo();
接下来,遍历每个工作表并提取未格式化的文本。TextOptions(true) 标志启用原始模式,返回不含样式标签的纯字符。
TextOptions 配置文本提取行为,布尔标志用于启用原始模式。
for (int p = 0; p < spreadsheetInfo.getRawPageCount(); p++) {
try (TextReader reader = parser.getText(p, new TextOptions(true))) {
String sheetContent = reader.readToEnd();
// Process or use extracted text data here
}
}
处理提取的数据
此时 sheetContent 保存了当前工作表的纯文本。您可以:
- 将其写入
.txt文件以作归档。 - 将其输入自然语言处理管道。
- 将其存储在数据库中以供后续查询。
常见问题及解决方案
| 问题 | 为什么会发生 | 解决方案 |
|---|---|---|
| 文件未找到 | excelFilePath 不正确。 | 验证路径并确保文件可读。 |
| 不受支持的格式 | 使用较旧的 XLS 文件与较新的解析器版本。 | 将文件转换为 XLSX,或升级到最新的 GroupDocs.Parser 版本。 |
| 大型工作簿的内存不足错误 | 一次加载所有工作表。 | 一次处理一个工作表(如示例所示),并及时释放资源。 |
| 许可证异常 | 试用期已过或缺少许可证文件。 | 在解析前应用有效的临时或购买的许可证。 |
实际应用(读取 Excel 工作表文本)
- 数据迁移: 将旧版电子表格数据迁移到现代数据库,无需手动复制粘贴。
- 自动化报告: 从多个工作簿提取原始值,生成合并的 PDF 或 HTML 报告。
- 搜索索引: 将提取的文本索引到 Elasticsearch,以实现快速内容检索。
大型 Excel 文件的性能技巧
- 按工作表流式处理: 循环已一次处理一个工作表,保持低内存使用。
- 重用
TextReader对象: 避免在紧密循环中创建不必要的对象。 - 并行处理: 对于极大的工作簿,考虑在独立线程中处理工作表,但需注意
Parser实例的线程安全。
常见问答
Q: GroupDocs.Parser 支持哪些其他电子表格格式?
A: 它支持 XLSX、XLS、CSV、ODS 以及其他 Office Open XML 格式——共计超过 10 种格式。
Q: 我还能提取单元格的格式信息吗?
A: 可以,通过在不使用 raw 标志的情况下使用 TextOptions,可以获取保留基本样式的格式化文本。
Q: 如何处理受密码保护的 Excel 文件?
A: 将密码传递给 Parser 构造函数:new Parser(filePath, "password")。
Q: 是否有办法仅提取特定列?
A: 可以对 sheetContent 进行后处理以过滤行,或使用 SpreadsheetOptions API 实现更细粒度的控制。
Q: 在哪里可以找到更多代码示例?
A: 查看 GroupDocs 文档 和 GitHub 仓库获取更多示例。
资源
- 文档概览: GroupDocs 文档
- 文档: GroupDocs Parser Java 文档
- API 参考: API 参考
- 下载: 最新发布
- GitHub 仓库: GroupDocs.Parser on GitHub
- 免费支持论坛: GroupDocs Parser 论坛
- 临时许可证: 获取临时许可证
最后更新: 2026-09-27
已测试版本: GroupDocs.Parser 25.5 for Java
作者: GroupDocs