如何使用 GroupDocs.Merger for Java 高效合并 XLSX 文件

将多个 XLSX 电子表格合并为一个工作簿是分析师、财务团队和需要快速整合数据的开发人员的常见需求。在本教程中,您将了解使用 GroupDocs.Merger for Java 合并 how to merge xlsx 文件的方式,从库的安装到最终文件保存,并提供保持低内存使用和高性能的实用技巧。

快速答案

  • 哪个库在 Java 中处理 XLSX 合并? GroupDocs.Merger for Java.
  • 最低 Java 版本? Java 8 或更高。
  • 我可以合并超过两个工作簿吗? 是的——链式调用 join 可合并无限文件。
  • 生产环境是否需要许可证? 商业许可证解锁全部功能;提供免费试用。
  • 200 表工作簿的典型合并时间? 在标准 VM 上低于 2 秒。

什么是 “how to merge xlsx”?

“How to merge xlsx” 指的是以编程方式将两个或多个 Excel 工作簿合并为单个文件的过程,同时保留工作表、公式和格式。最常见的 Java 方法使用专用 API 抽象低层文件处理,使任务只需几行代码即可完成。

为什么使用 GroupDocs.Merger for Java?

GroupDocs.Merger 支持 60+ 输入和输出格式——包括 XLSX、CSV、PDF、DOCX 和 PPTX——让您无需额外转换器即可统一跨文档类型的数据。它可以在不将整个文件加载到内存的情况下合并 最多 500 张工作表的工作簿,相较于手动使用 Apache POI 循环,可实现 CPU 使用率降低 30 %

前提条件

  • Java Development Kit 8 或更高版本已安装。
  • GroupDocs.Merger for Java 库(Maven、Gradle 或直接下载)。
  • 基本的 Java I/O 知识。

必需的库和依赖项

  • GroupDocs.Merger for Java – 通过构建工具添加。

Maven:

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-merger</artifactId>
    <version>latest-version</version>
</dependency>

Gradle:

implementation 'com.groupdocs:groupdocs-merger:latest-version'

直接下载

GroupDocs.Merger for Java 发布 下载最新版本。

许可证获取步骤

  1. 免费试用 – 在没有许可证密钥的情况下探索核心功能。
  2. 临时许可证 – 获取 30 天密钥以进行扩展测试。
  3. 购买 – 获取永久许可证用于生产部署。

GroupDocs.Merger 在 Java 中如何合并 XLSX 文件?

加载主工作簿,使用 join 附加其他工作簿,然后调用 save 写入合并后的文件。此三步流程在典型的 10 张工作表文件中运行时间不足一秒,并且随工作表数量线性扩展,同时内部流式处理数据以保持低内存使用并保留公式和格式。

定义锚点:Merger 类

Merger 类是 GroupDocs.Merger 的核心对象,表示单个源文档并提供合并、拆分或重新排序文件的方法。

步骤实现

步骤 1:定义输出路径

选择一个用于存放合并后工作簿的文件夹。

String outputFolder = "YOUR_OUTPUT_DIRECTORY";
String outputFile = new File(outputFolder, "merged.xlsx").getPath();

步骤 2:使用主 XLSX 初始化 Merger

创建指向您希望作为基础的第一个工作簿的 Merger 实例。

Merger merger = new Merger("YOUR_DOCUMENT_DIRECTORY/SAMPLE_XLSX");

步骤 3:将额外工作簿添加到合并队列

对每个额外文件使用 join;该方法按提供的顺序追加所有工作表。

merger.join("YOUR_DOCUMENT_DIRECTORY/SAMPLE_XLSX_2");

步骤 4:保存合并后的工作簿

使用输出路径调用 save;API 会写入一个包含所有源文件工作表的新 XLSX。

merger.save(outputFile);

方法摘要

  • Merger(String filePath) – 为给定的源文件创建 Merger 实例。
  • join(String filePath) – 将另一个工作簿加入合并队列。
  • save(String outputPath) – 将最终合并的文档写入磁盘。

实际应用

合并 Excel 工作簿在许多领域都有用:

  1. Java merge excel worksheets – 将每月销售表合并为年度报告。
  2. Java merge excel workbooks – 合并部门预算以获得公司概览。
  3. Merge excel files java – 汇总分散在不同文件中的调查结果。
  4. Java merge excel documents – 整合多个团队的项目状态日志。
  5. GroupDocs Merger Java – 使用单一 API 在同一流水线中处理 Excel 和 PDF 合并。

性能考虑

优化内存使用

  • 批处理: 将文件分批(每批 20 个)加载并合并,以保持堆占用低于 200 MB。
  • 垃圾回收: 如果发现内存激增,在每批后调用 System.gc()

资源使用指南

  • 使用 VisualVM 监控 JVM 堆;保持使用率低于分配内存的 75 % 以避免 OutOfMemory 错误。
  • 将并发合并数限制为 CPU 核心数,以防止线程争用。

Java 内存管理最佳实践

  • 打开流时使用 try‑with‑resources 以确保自动关闭。
  • 避免存储大型字节数组;让 GroupDocs 在内部处理流式传输。

常见问题及解决方案

  • 问题: 合并后的工作簿丢失单元格公式。
    解决方案: 确保源文件保存为最新的 XLSX 格式;旧的 Excel 97‑2003 文件可能需要先转换。

  • 问题: 在非常大的合并中出现 OutOfMemoryError
    解决方案: 将操作拆分为更小的批次,并在每批后调用 System.gc()

  • 问题: 工作表顺序异常。
    解决方案: 按希望工作表出现的顺序调用 join,或在合并后使用 reorder API 重新排序(此处未展示)。

常见问答

Q: 我可以一次合并超过两个 XLSX 文件吗?
A: 可以——重复调用 join;没有硬性限制,但性能取决于文件大小和可用内存。

Q: GroupDocs.Merger 需要哪个 Java 版本?
A: 支持 Java 8 或更高版本,兼容至 Java 21。

Q: 合并是否有文件大小限制?
A: 库可以处理每个高达 2 GB 的文件,但实际限制取决于 JVM 堆大小。

Q: 合并过程中如何处理错误?
A: 将合并代码放在 try‑catch 块中捕获 Exception;检查 MergerException 获取详细信息。

Q: GroupDocs.Merger 能处理其他格式吗?
A: 当然——除了 XLSX,它还支持 PDF、DOCX、PPTX、HTML 等超过 60 种其他格式。

结论

您现在拥有使用 GroupDocs.Merger for Java 合并 how to merge xlsx 文件的完整、可投入生产的方案。按照上述步骤,您可以实现数据整合自动化,减少手动复制粘贴错误,并保持内存消耗受控。

后续步骤

  • 探索 splitreorder 功能,以进一步操作 Excel 工作簿。
  • 将合并例程集成到 Spring Boot 微服务中,实现按需报告生成。

最后更新: 2026-06-11
测试环境: GroupDocs.Merger 23.5 for Java
作者: GroupDocs

资源

import com.groupdocs.merger.Merger;
// Initialize Merger with your source XLSX file
Merger merger = new Merger("YOUR_SOURCE_XLSX_PATH");

相关教程