如何使用 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:定義檔案路徑並初始化物件
首先,設定 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 物件在多種情境下皆相當有用:
- 資料整合: 將季報 PDF 合併至單一儀表板活頁簿。
- 互動簡報: 提供可於會議中即時開啟的詳細規格說明書。
- 自動化報告: 產生每月財務報表,並自動附帶相關文件。
效能考量
- 記憶體管理: 關閉不再需要的
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 允許您設定列/欄索引、尺寸與可見性,以調整物件在工作表中的呈現方式。
資源
- 文件說明: GroupDocs.Merger for Java Documentation
- API 參考: API Reference Guide
- 下載: Latest Releases
- 購買: Buy GroupDocs.Merger for Java
- 免費試用: Start a Free Trial
- 臨時授權: Request a Temporary License
- 支援: GroupDocs Forum
最後更新: 2026-10-06
測試環境: GroupDocs.Merger for Java 最新版本
作者: GroupDocs