如何使用 GroupDocs.Merger for Java 在 Excel 中嵌入 PDF

在 Excel 中嵌入 PDF 可以将静态电子表格转变为包含完整源文档的丰富交互式报告,直接放在需要的位置。在本教程中,您将学习 如何在 Excel 中嵌入 PDF,方法是使用 GroupDocs.Merger for Java 将 PDF 作为 OLE(对象链接与嵌入)对象导入。我们将逐一介绍所有前提条件,展示完整代码,并提供实用技巧,帮助您立即在自己的项目中使用此技术。

快速答案

  • What does “embed PDF in Excel” mean? 它指的是将 PDF 文件插入为 OLE 对象,以便可以直接从电子表格中打开 PDF。
  • Which library handles the import? GroupDocs.Merger for Java 提供了 importDocument 方法来实现此功能。
  • Do I need a license? 免费试用可用于评估;生产环境需要商业许可证。
  • Can I embed other file types? 是的——Word、图像以及其他受支持的格式也可以作为 OLE 对象导入。
  • Is this approach compatible with Java 8+? 当然——该库支持 Java 8 及更高版本。

什么是将 PDF 嵌入 Excel?

在 Excel 中嵌入 PDF 会将 PDF 存储在工作簿内部,作为 OLE 对象,使用户可以双击图标直接打开原始 PDF,而无需离开电子表格。此技术非常适用于审计追踪、详细报告或任何需要将源文档与汇总数据紧密关联的场景。

为什么使用 GroupDocs.Merger 在 Excel 中嵌入 PDF?

使用 GroupDocs.Merger 嵌入 PDF 文件可消除手动复制粘贴,并确保在数千个工作簿中保持一致的放置位置。该库支持 30 多种输入和输出格式,并且能够在不将整个文件加载到内存中的情况下处理高达 500 MB 的工作簿,为大规模报告流水线提供快速、内存高效的自动化。

如何在 Excel 中嵌入 PDF – 前提条件

在开始编码之前,请确保您的开发环境满足以下条件。您必须安装兼容的 JDK,将 GroupDocs.Merger 库添加到项目中,并准备好用于编辑和运行代码的 IDE。熟悉 Java 文件处理也有助于您顺利跟随示例。

  • Java Development Kit (JDK) 8 或更高版本,已安装并添加到您的 PATH。
  • GroupDocs.Merger for Java – 通过 Maven 或 Gradle 将其添加到项目中(见下文)。
  • 如 IntelliJ IDEA 或 Eclipse 等 IDE,用于编辑和运行代码。
  • 对 Java 文件处理和流有基本了解。

设置 GroupDocs.Merger for Java

Maven

在您的 pom.xml 文件中添加以下依赖:

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

Gradle

在您的 build.gradle 文件中包含该库:

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

您也可以直接从 GroupDocs.Merger for Java releases 下载最新版本。

获取许可证的步骤

  1. Free trial: 开始免费试用以探索所有功能。
  2. Temporary license: 请求临时许可证以进行更长时间的测试。
  3. Purchase: 获取完整许可证用于商业部署。

步骤实现

步骤 1:定义文件路径并初始化对象

首先,设置 Excel 工作簿、要嵌入的 PDF 以及输出文件的路径。然后创建 OleSpreadsheetOptions,用于描述 OLE 对象将在何处出现。

Definition anchor: OleSpreadsheetOptions 配置 Excel 工作表中 OLE 对象的目标单元格、大小和显示属性。

import com.groupdocs.merger.Merger;
import com.groupdocs.merger.domain.options.OleSpreadsheetOptions;

public class ImportOLEToSpreadsheet {
    public static void main(String[] args) throws Exception {
        // Define the paths for input and output files.
        String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.xlsx";  // Excel file path
        String embeddedFilePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";  // PDF file to embed

        // Specify the output file path.
        String filePathOut = "YOUR_OUTPUT_DIRECTORY/ImportDocumentToSpreadsheet-output.xlsx";

        // Specify the page number of the OLE object and its position in the spreadsheet.
        int pageNumber = 2;  
        OleSpreadsheetOptions oleCellsOptions = new OleSpreadsheetOptions(embeddedFilePath, pageNumber);
        
        // Set the desired row and column indices for the OLE object placement.
        oleCellsOptions.setRowIndex(2); 
        oleCellsOptions.setColumnIndex(2);

        // Create a Merger instance for the target Excel file.
        Merger merger = new Merger(filePath);
    }
}

步骤 2:导入 OLE 文档

使用 importDocument 方法将在您定义的位置将 PDF 嵌入为 OLE 对象。

Definition anchor: importDocument 告诉 GroupDocs.Merger 将提供的文件视为 OLE 对象,保留其原始二进制内容并将其链接到工作表。

// Import the OLE document into the specified position in the spreadsheet.
merger.importDocument(oleCellsOptions);

// Save the updated spreadsheet to the output path.
merger.save(filePathOut);

Why we use importDocument: 此方法确保 PDF 在从 Excel 打开时保持完整功能,自动处理必要的二进制打包和关系元数据。

步骤 3:保存电子表格

将更改持久化到新文件,以保持原始工作簿不受影响。

merger.save(filePathOut);

Key configuration options: 您可以进一步调整 OleSpreadsheetOptions——例如,修改对象的大小、可见性,或决定是链接而非嵌入。

常见陷阱与故障排除技巧

  • FileNotFoundException: 再次确认您提供的路径指向的文件确实存在。
  • Version mismatch: 确保您使用的 GroupDocs.Merger 版本与 JDK 版本匹配。
  • Corrupt PDF: 在嵌入之前确认 PDF 能单独打开。
  • Memory pressure: 处理大量工作簿时,及时关闭每个 Merger 实例或使用 try‑with‑resources 释放资源。

实际应用

在 Excel 中嵌入 OLE 对象在许多场景中都很有用:

  1. Data consolidation: 将季度 PDF 合并为单个仪表板工作簿。
  2. Interactive presentations: 提供可在会议期间按需打开的详细规格表。
  3. Automated reporting: 生成每月财务报表,自动包含支持文档。

性能考虑

  • Memory management: 关闭不再需要的 Merger 实例以释放资源。
  • Batch processing: 处理数十个电子表格时,分小批次处理以避免内存峰值。
  • Java best practices: 对流使用 try‑with‑resources,并优雅地处理异常。

结论

您现在拥有使用 GroupDocs.Merger for Java 实现 在 Excel 中嵌入 PDF 和 将文档导入 Excel 的完整、可投入生产的解决方案。尝试不同的文件类型,调整放置选项,并将此工作流集成到您的自动化报告流水线中。

接下来的步骤

  • 尝试嵌入 Word 文档或图像,查看 API 如何处理其他格式。
  • 探索 GroupDocs.Merger 的其他功能,如拆分、合并或转换文档。

常见问题

Q: 我可以在单个 Excel 文件中嵌入多个 OLE 对象吗?
A: 是的,对每个对象重复调用 importDocument,并调整 OleSpreadsheetOptions 以定位到不同的单元格。

Q: 哪些文件格式支持作为 OLE 对象?
A: GroupDocs.Merger 支持 PDF、Word 文档、Excel 文件、图像以及其他多种常见格式——总计超过 30+ 种。

Q: 如何使用 GroupDocs.Merger 高效处理大文件?
A: 将文件分成更小的批次处理,使用流式 API,并及时释放 Merger 实例以保持低内存使用。

Q: 如果嵌入的文件不可访问或已损坏怎么办?
A: 在尝试嵌入之前验证源文件的路径和完整性。损坏的文件将在导入时抛出异常。

Q: 我可以自定义 Excel 中 OLE 对象的外观吗?
A: 是的,OleSpreadsheetOptions 允许您设置行/列索引、大小和可见性,以定制对象在工作表中的显示方式。

资源


最后更新: 2026-10-06
已测试于: GroupDocs.Merger for Java latest version
作者: GroupDocs

相关教程