如何使用 GroupDocs.Merger for Java 合并 XLAM 文件

快速答案

  • 我可以使用 GroupDocs.Merger 合并 .xlam 文件吗? 是的,库开箱即支持 XLAM 合并。
  • 需要哪个 Java 版本? Java 8 或更高版本。
  • 开发是否需要许可证? 免费试用可用于测试;生产环境需要付费许可证。
  • 一次可以合并多少文件? 单次操作最多可合并 100 个 XLAM 文件(受内存限制)。
  • 合并是无损的吗? 库会保留宏、VBA 代码和嵌入的资源,且不做更改。

什么是 GroupDocs.Merger for Java?

GroupDocs.Merger for Java 是一个商业 Java 库,提供用于合并、拆分和操作多种文档格式的高级 API,包括 Excel 加载项、PDF、Word 和 PowerPoint 文件。它在内部处理复杂的文件结构,使开发者能够在不处理底层格式细节的情况下使用文档。

为什么使用 GroupDocs.Merger 合并 XLAM 文件?

GroupDocs.Merger 支持 50 多种输入和输出格式,并且能够在不将整个文件加载到内存的情况下处理 数百页的文档,相比于简单的文件拼接,可将峰值内存使用降低至 70 %。这使其非常适合企业级加载项部署流水线。

前置条件

  • Java Development Kit (JDK) 8+ – 确保与库的字节码兼容。
  • IDE – IntelliJ IDEA、Eclipse 或您喜欢的任何编辑器。
  • 构建工具 – 用于依赖管理的 Maven 或 Gradle。
  • 基本的 Java 知识 – 您应能够创建一个简单项目并运行 main 方法。

设置 GroupDocs.Merger for Java

安装说明

Maven:
Add the following dependency to your pom.xml file:

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

Gradle:
Include the library in your build.gradle file:

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

Direct Download:
您也可以从官方发布页面下载最新的 JAR: GroupDocs.Merger for Java releases.

获取许可证

  1. 免费试用 – 在 GroupDocs 网站注册并获取试用密钥。
  2. 临时许可证 – 申请临时许可证以进行更长时间的评估。
  3. 完整购买 – 在 GroupDocs 商店购买生产许可证: GroupDocs

基本初始化和设置

添加依赖后,第一步是创建一个 Merger 实例。
Merger 类是核心组件,负责在受支持的文档类型上协调合并操作。

import com.groupdocs.merger.Merger;

public class MergeXlamFeature {
    public static void main(String[] args) throws Exception {
        String outputFolder = "YOUR_OUTPUT_DIRECTORY";
        Merger merger = new Merger("YOUR_DOCUMENT_DIRECTORY/SAMPLE_XLAM");
        
        // Additional setup and usage code
    }
}

如何在 Java 中合并 XLAM 文件?

将每个 XLAM 文件加载到 Merger 实例中,对每个额外的文件调用 join(),最后调用 save() 将合并后的加载项写入磁盘。整个过程可以用 三行简洁代码 完成,非常适合 CI/CD 流水线或一次性脚本。

步骤 1:初始化 Merger 对象

使用您想作为基准的第一个 XLAM 文件创建主 Merger 对象。

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

步骤 2:添加额外的 XLAM 文件

join() 方法将每个后续的 XLAM 文件追加到现有文档中。它会保留宏代码、自定义 UI 功能区以及所有嵌入的资源。

merger.join("YOUR_DOCUMENT_DIRECTORY/SAMPLE_XLAM_2");

步骤 3:保存合并后的文件

save() 方法将合并后的文档写入指定的文件路径。

String outputFile = new File(outputFolder, "merged.xlam").getPath();
merger.save(outputFile);

说明:

  • 参数 – 为每个源文件和目标文件提供绝对或相对路径。
  • 目的 – 将多个加载项合并为一个包,简化分发和版本控制。

常见问题及解决方案

  • 文件路径错误 – 确认所有路径都是绝对路径或相对于工作目录正确解析。
  • 内存不足 – 对于非常大的 XLAM 集合,增加 JVM 堆大小(-Xmx2g)或将文件分批处理。
  • 许可证异常 – 确保正确加载许可证密钥;否则库会抛出 LicenseException

实际应用

合并 .xlam 文件在多个真实场景中表现突出:

  1. 集中式加载项管理 – 管理员可以向所有工作站分发单个文件,降低更新开销。
  2. 复杂解决方案 – 将功能分散在多个加载项中的项目(例如数据连接器、UI 扩展)可以打包以便更容易部署。
  3. 版本同步 – 当多个开发者贡献宏时,单个合并文件可确保团队内行为一致。

性能考虑因素

  • 内存占用 – GroupDocs.Merger 采用流式处理,即使是 200 MB 的 XLAM 包也只消耗不到 50 MB 的 RAM。
  • 垃圾回收 – 合并后显式将大型 InputStream 对象设为 null,以帮助 GC。
  • 性能分析 – 使用 Java Flight Recorder 或 VisualVM 监控 CPU 使用率;在现代 CPU 上合并 100 个文件通常在 2 秒以内完成。

常见问答

问:除了 .xlam,GroupDocs.Merger 还能处理哪些文件格式?
答:该库支持 50 多种格式,包括 PDF、DOCX、PPTX、XLSX,以及 PNG、JPEG 等图像类型。

问:我可以合并受密码保护的 Excel 文件吗?
答:可以。在创建 Merger 实例时提供密码,库会透明地解密并合并它们。

问:合并的宏数量是否有限制?
答:没有硬性限制;实际限制取决于可用内存和 JVM 堆大小。

问:如果遇到 bug,如何获得支持?
答:通过官方支持渠道联系,或在社区论坛发帖提问: GroupDocs forums

问:合并后的 XLAM 是否保留 VBA 项目签名?
答:是的,保留现有的数字签名,确保安全策略保持完整。

资源


最后更新: 2026-06-06
测试版本: GroupDocs.Merger 23.10 for Java
作者: GroupDocs

相关教程