如何使用 GroupDocs.Parser for Java 解析 Excel – 指南
在当今以数据为中心的应用中,如何解析 Excel 文件的效率往往决定工作流的成败。无论是迁移遗留数据、生成自动化报告,还是将原始文本输入分析管道,从每个工作表中提取未格式化的文本都是常见需求。本教程将手把手演示如何使用 GroupDocs.Parser for Java 解析 Excel 文件、读取 Excel 工作表文本,并以最少的代码获取原始内容。
快速答案
- 哪个库负责在 Java 中解析 Excel? GroupDocs.Parser for Java。
- 我能从每个工作表提取原始文本吗? 可以,使用启用原始模式的
TextReader。 - 需要许可证吗? 可获取临时免费许可证进行评估。
- 需要哪个 Java 版本? JDK 8 或更高。
- 支持 Maven 吗? 当然 – 将仓库和依赖添加到
pom.xml即可。
什么是使用 GroupDocs.Parser 的 “如何解析 Excel”?
使用 GroupDocs.Parser 解析 Excel 意味着以编程方式打开 .xlsx(或其他受支持)工作簿,遍历其工作表,并读取不带任何格式的纯文本。这种方式比将整个工作簿加载到笨重的电子表格 API 中更快,并且可以直接访问底层字符。
为什么选择 GroupDocs.Parser for Java?
- 速度快且内存占用低: 一次处理一个工作表。
- 广泛的格式支持: 支持 XLSX、XLS、CSV 等。
- 简洁的 API: 只需几行代码即可开始提取文本。
- 企业级授权: 免费试用,随后可升级为可扩展的商业授权。
前置条件
- Java Development Kit (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 releases 下载最新的 GroupDocs.Parser for Java 版本。
获取许可证
要使用免费试用,请访问 GroupDocs 网站 获取临时许可证。这样可以在购买正式许可证前评估库的全部功能。
基本初始化与设置
将库加入类路径后,您可以创建指向 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:从工作表中提取原始文本
步骤 1 – 获取文档信息
首先获取工作簿的元数据,例如工作表(原始页面)的数量。
IDocumentInfo spreadsheetInfo = parser.getDocumentInfo();
步骤 2 – 循环遍历每个工作表并读取文本
遍历所有工作表并提取原始、未格式化的文本。TextOptions(true) 标志开启原始模式。
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实例的线程安全性。
常见问答
问:GroupDocs.Parser 还支持哪些电子表格格式?
答:支持 XLSX、XLS、CSV 以及其他 Office Open XML 格式。
问:我能提取单元格的格式信息吗?
答:可以,使用不带原始标志的 TextOptions 即可获取格式化文本。
问:如何处理受密码保护的 Excel 文件?
答:在 Parser 构造函数中传入密码,例如 new Parser(filePath, "password")。
问:有没有办法只提取特定列?
答:可以在后处理 sheetContent 时过滤行,或使用 SpreadsheetOptions API 实现更细粒度的控制。
问:在哪里可以找到更多代码示例?
答:请查看 GroupDocs 文档 和 GitHub 仓库中的示例。
资源
- 文档: GroupDocs Parser Java Docs
- API 参考: API Reference
- 下载: Latest Releases
- GitHub 仓库: GroupDocs.Parser on GitHub
- 免费支持论坛: GroupDocs Parser Forum
- 临时许可证: Obtain a Temporary License
最后更新: 2026-02-14
测试环境: GroupDocs.Parser 25.5 for Java
作者: GroupDocs