如何在 Java 中使用 GroupDocs.Editor 編輯 Word 文件
介紹
如果您需要以程式方式 how to edit word(編輯 Word)文件,GroupDocs.Editor for Java 為您提供乾淨且記憶體效能高的 API,能同時處理受保護與未受保護的檔案。無論您是構建文件產生服務、自動化表單欄位清理,或是保護敏感內容,本教學將帶您一步步完成 Word 檔案的載入、編輯與儲存,並提供最佳實踐的選項。
本指南您將達成的目標:
- 使用 GroupDocs.Editor 載入 Word 文件(包括受密碼保護的檔案)。
- 管理並移除表單欄位,例如文字輸入或核取方塊。
- 儲存編輯後的文件,同時最佳化記憶體使用並套用寫入密碼保護。
既然您已了解其好處,現在就設定環境並開始在 Java 中編輯 Word 文件吧。
快速問答
- GroupDocs.Editor 能開啟受密碼保護的檔案嗎? 可以,只需在
WordProcessingLoadOptions中提供密碼。 - 哪個選項可減少大型文件的記憶體消耗? 在
WordProcessingSaveOptions中使用setOptimizeMemoryUsage(true)。 - 如何移除特定的表單欄位? 呼叫
FormFieldManager.removeFormField(fieldName)。 - 正式環境是否需要授權? 試用版可用於評估,完整授權可解鎖全部功能。
- 需要哪個版本的 Java? JDK 8 或更高版本。
前置條件
- Java Development Kit (JDK) 8 或更新版本。
- IDE – IntelliJ IDEA、Eclipse 或 NetBeans。
- Maven 用於相依性管理。
必要函式庫
將 GroupDocs.Editor 加入您的 Maven 專案:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-editor</artifactId>
<version>25.3</version>
</dependency>
<repositories>
<repository>
<id>groupdocs-repo</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/editor/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-editor</artifactId>
<version>25.3</version>
</dependency>
</dependencies>
您也可以從相同的 GroupDocs.Editor for Java releases 下載二進位檔。
或者,直接從 GroupDocs.Editor for Java releases 下載此函式庫。
環境設定
確保已正確安裝與設定 Maven 以及 JDK。若您對任一工具不熟悉,請參考其官方安裝指南。
設定 GroupDocs.Editor for Java
GroupDocs.Editor 支援 30 多種輸入與輸出格式,且可在不將整個檔案載入記憶體的情況下處理高達 500 MB 的文件,這歸功於其串流架構。
- Maven 設定 – 加入上方顯示的倉庫與相依性。
- 直接下載 – 若您偏好手動加入 JAR,請使用相同的發行連結。
取得授權
- 免費試用 – 下載並免費評估。
- 完整授權 – 購買或申請臨時金鑰,以解鎖批次處理與高級支援等進階功能。
如何使用 GroupDocs.Editor 載入 Word 文件?
使用 GroupDocs.Editor 載入 Word 文件相當簡單:先為檔案建立 InputStream,可選擇在 WordProcessingLoadOptions 中設定密碼,然後以這些參數實例化 Editor。函式庫以串流方式讀取文件,並回傳一個 Editor 物件,讓您完整存取編輯、管理表單欄位與儲存檔案的功能。
Editor 是代表已載入 Word 文件的核心類別,提供編輯、表單欄位處理與儲存的方法。
String inputFilePath = "YOUR_DOCUMENT_DIRECTORY/sample_docx";
InputStream inputStream = new FileInputStream("path/to/document.docx");
InputStream fs = new FileInputStream(inputFilePath);
WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.setPassword("yourPassword"); // Omit if the document is not protected
WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.setPassword("some_password_to_open_a_document");
Editor editor = new Editor(inputStream, loadOptions);
Editor editor = new Editor(fs, loadOptions);
為何重要: 必須提供正確的密碼;否則函式庫會將檔案視為未受保護,並可能拋出例外。
如何使用 GroupDocs.Editor 從 Word 文件中移除表單欄位?
若要刪除特定表單欄位,先從 Editor 實例取得 FormFieldManager,再以欄位名稱呼叫其 removeFormField 方法。此操作會從文件結構中移除欄位定義,確保最終檔案不再包含不需要的輸入元件,且不會提示使用者輸入資料。
FormFieldManager 是負責在已載入的 Word 文件中存取與操作表單欄位的元件。
FormFieldManager fieldManager = editor.getFormFieldManager();
FormFieldManager fieldManager = editor.getFormFieldManager();
String textFieldName = "Text1";
fieldManager.removeFormField(fieldManager.getFormField(textFieldName,
com.groupdocs.editor.words.fieldmanagement.TextFormField.class));
fieldManager.removeFormField("CustomerName");
WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Docx);
saveOptions.setOptimizeMemoryUsage(true); // Optimize for large documents
saveOptions.setProtection(com.groupdocs.editor.options.WordProcessingProtection.
new com.groupdocs.editor.words.fieldmanagement.WordProcessingProtection(
com.groupdocs.editor.words.fieldmanagement.WordProcessingProtectionType.AllowOnlyFormFields, "write_password"));
為何重要: 在自動化工作流程中,遺留或未使用的欄位可能導致驗證錯誤;移除它們可確保最終文件乾淨。
如何在 Java 中以最佳化記憶體使用方式儲存 Word 文件?
當您準備好持久化變更時,請設定 WordProcessingSaveOptions 物件並啟用其 setOptimizeMemoryUsage(true) 旗標。這會告訴 GroupDocs.Editor 以分塊方式寫入文件,而非將全部內容載入堆積記憶體,從而大幅降低 RAM 使用量。您亦可在呼叫 save 方法前設定寫入密碼或選擇輸出格式。
WordProcessingSaveOptions 讓您微調儲存過程,包括記憶體最佳化與文件保護。
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
editor.save(outputStream, saveOptions);
WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions();
saveOptions.setOptimizeMemoryUsage(true);
saveOptions.setWritePassword("newPassword");
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
editor.save(outputStream, saveOptions);
為何重要: 啟用 optimizeMemoryUsage 對於大型文件(數百頁)至關重要,因為它可防止在一般伺服器配置下發生 OutOfMemoryError。
實務應用
- 批次文件自動化 – 每晚處理數千個 Word 檔案而不會耗盡伺服器記憶體。
- 動態模板個性化 – 根據使用者輸入即時新增或移除欄位。
- 安全文件分發 – 套用寫入密碼保護,同時仍允許表單欄位編輯。
效能考量
- 記憶體最佳化 –
setOptimizeMemoryUsage(true)可將 200 頁文件的堆積記憶體使用量降低至最高 70 %。 - 串流管理 – 必須始終關閉串流(建議使用
try‑with‑resources),以避免資源泄漏。 - 版本更新 – 保持 GroupDocs.Editor 為最新版本;每次發行都會加入格式支援與效能修補。
結論
您現在已了解如何在 Java 中使用 GroupDocs.Editor how to edit word(編輯 Word)文件:載入檔案(即使是受保護的),操作表單欄位,並以記憶體節省的選項與保護方式儲存。將這些程式碼片段整合到您的服務中,即可提升生產力與可靠性。
下一步:
- 嘗試其他
WordProcessingFormats,如 PDF 或 HTML。 - 將編輯與轉換功能結合,打造端對端的文件流程。
- 查閱官方 API 參考文件,以了解協同編輯等進階情境。
常見問答
- 我可以在沒有授權的情況下使用 GroupDocs.Editor 嗎?
可以,提供免費試用版供評估使用,但正式部署時需購買授權。 - GroupDocs.Editor 相容所有 Word 版本嗎?
它完整支援由 Word 2007 至 Word 2021 產生的 DOCX、DOC 與 DOCM 檔案。 - 函式庫如何處理大型檔案?
透過串流內容並使用optimizeMemoryUsage,可在不將整個檔案載入記憶體的情況下處理高達 500 MB 的檔案。 - 我可以將 GroupDocs.Editor 與 Spring Boot 整合嗎?
當然可以 – 只需宣告 Maven 相依性,並在需要的地方注入Editor。 - 如果遇到問題,我該向哪裡尋求協助?
前往 GroupDocs Support Forum 取得社群回覆與官方支援。
常見問題
問:如何編輯受密碼保護的 Word 檔案?
在建立 Editor 實例前,透過 WordProcessingLoadOptions.setPassword() 提供密碼。
問:我可以將文件儲存為除 DOCX 之外的格式嗎?
可以—WordProcessingSaveOptions 透過 WordProcessingFormats 列舉接受 PDF、RTF、HTML 等格式。
問:optimize memory usage java 實際上是什麼作用?
它以分塊方式串流文件,避免整個檔案佔用堆積記憶體,對大型檔案非常適合。
問:是否能一次移除所有表單欄位?
遍歷 fieldManager.getFormFields(),對每個項目呼叫 removeFormField 即可。
問:我需要手動關閉串流嗎?
需要—使用 try‑with‑resources 或明確關閉 InputStream 與 OutputStream 以釋放資源。
最後更新: 2026-06-27
測試環境: GroupDocs.Editor 25.3 for Java
作者: GroupDocs