如何在 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 的文件,這歸功於其串流架構。

  1. Maven 設定 – 加入上方顯示的倉庫與相依性。
  2. 直接下載 – 若您偏好手動加入 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 參考文件,以了解協同編輯等進階情境。

常見問答

  1. 我可以在沒有授權的情況下使用 GroupDocs.Editor 嗎?
    可以,提供免費試用版供評估使用,但正式部署時需購買授權。
  2. GroupDocs.Editor 相容所有 Word 版本嗎?
    它完整支援由 Word 2007 至 Word 2021 產生的 DOCX、DOC 與 DOCM 檔案。
  3. 函式庫如何處理大型檔案?
    透過串流內容並使用 optimizeMemoryUsage,可在不將整個檔案載入記憶體的情況下處理高達 500 MB 的檔案。
  4. 我可以將 GroupDocs.Editor 與 Spring Boot 整合嗎?
    當然可以 – 只需宣告 Maven 相依性,並在需要的地方注入 Editor
  5. 如果遇到問題,我該向哪裡尋求協助?
    前往 GroupDocs Support Forum 取得社群回覆與官方支援。

常見問題

問:如何編輯受密碼保護的 Word 檔案?
在建立 Editor 實例前,透過 WordProcessingLoadOptions.setPassword() 提供密碼。

問:我可以將文件儲存為除 DOCX 之外的格式嗎?
可以—WordProcessingSaveOptions 透過 WordProcessingFormats 列舉接受 PDF、RTF、HTML 等格式。

問:optimize memory usage java 實際上是什麼作用?
它以分塊方式串流文件,避免整個檔案佔用堆積記憶體,對大型檔案非常適合。

問:是否能一次移除所有表單欄位?
遍歷 fieldManager.getFormFields(),對每個項目呼叫 removeFormField 即可。

問:我需要手動關閉串流嗎?
需要—使用 try‑with‑resources 或明確關閉 InputStreamOutputStream 以釋放資源。


最後更新: 2026-06-27
測試環境: GroupDocs.Editor 25.3 for Java
作者: GroupDocs

相關教學