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

在 Excel 中嵌入 PDF 可以將靜態試算表轉變為包含完整來源文件的豐富互動報告,讓您在需要的地方直接查看。於本教學中,您將學習 如何在 Excel 中嵌入 PDF,透過將 PDF 匯入為 OLE(Object Linking and Embedding)物件,使用 GroupDocs.Merger for Java。我們會逐一說明所有前置條件,展示完整程式碼,並提供實用技巧,讓您立即在自己的專案中使用此技術。

快速回答

  • 「在 Excel 中嵌入 PDF」是什麼意思? 這表示將 PDF 檔案插入為 OLE 物件,讓使用者可直接從試算表開啟 PDF。
  • 哪個函式庫負責匯入? GroupDocs.Merger for Java 提供 importDocument 方法來完成此工作。
  • 我需要授權嗎? 免費試用可用於評估;商業授權則是正式上線所必需的。
  • 我可以嵌入其他檔案類型嗎? 可以——Word、圖片以及其他支援的格式亦可匯入為 OLE 物件。
  • 此方法是否相容於 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. 免費試用: 先使用免費試用版以探索所有功能。
  2. 臨時授權: 申請臨時授權以進行更長時間的測試。
  3. 購買授權: 取得完整授權以供商業部署使用。

步驟式實作

步驟 1:定義檔案路徑並初始化物件

首先,設定 Excel 活頁簿、欲嵌入之 PDF 以及輸出檔案的路徑。接著建立 OleSpreadsheetOptions,用以描述 OLE 物件的顯示位置。

定義說明: 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 物件,放置於先前定義的位置。

定義說明: 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);

為何使用 importDocument: 此方法確保 PDF 從 Excel 開啟時仍能完整運作,會自動處理必要的二進位封裝與關聯中繼資料。

步驟 3:儲存試算表

將變更寫入新檔案,以免影響原始活頁簿。

merger.save(filePathOut);

主要設定選項: 您可以進一步調整 OleSpreadsheetOptions——例如調整物件大小、可見性,或設定為連結而非嵌入。

常見陷阱與除錯技巧

  • FileNotFoundException: 請再次確認您提供的路徑指向現有檔案。
  • 版本不匹配: 確認您使用的 GroupDocs.Merger 版本與 JDK 版本相符。
  • PDF 損毀: 在嵌入前先確認 PDF 能單獨開啟。
  • 記憶體壓力: 處理大量活頁簿時,請即時關閉每個 Merger 實例,或使用 try‑with‑resources 釋放資源。

實務應用

在 Excel 中嵌入 OLE 物件在多種情境下皆相當有用:

  1. 資料整合: 將季報 PDF 合併至單一儀表板活頁簿。
  2. 互動簡報: 提供可於會議中即時開啟的詳細規格說明書。
  3. 自動化報告: 產生每月財務報表,並自動附帶相關文件。

效能考量

  • 記憶體管理: 關閉不再需要的 Merger 實例以釋放資源。
  • 批次處理: 處理數十份試算表時,分批執行以避免記憶體突增。
  • Java 最佳實踐: 使用 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 最新版本
作者: GroupDocs

相關教學