使用 GroupDocs.Editor 在 Java 中將 docx 轉換為 docm
在現代企業工作流程中,convert docx to docm 可程式化執行,讓您自動化報告產生、合約個人化以及以範本驅動的溝通。使用 GroupDocs.Editor for Java,您無需在伺服器上安裝 Microsoft Office,保持版面一致性,並且能夠取代 docx 中的文字、將 Word 匯出為 txt,或將 Word 轉換為 rtf——全部透過單一輕量級 API。本指南將帶您逐步載入 DOCX 檔案、(可選)編輯其 HTML,並將結果儲存為 DOCM 或其他常見格式。
快速解答
- 什麼程式庫可以讓我在 Java 中編輯 Word 文件? GroupDocs.Editor for Java.
- 我可以自動取代文字嗎? 可以——HTML 標記 API 讓您在整份文件中搜尋並取代字串。
- 我可以匯出哪些格式? DOCM、RTF、純文字(TXT)等。
- 開發時需要授權嗎? 免費試用可用於測試;正式上線需購買商業授權。
- 是否相容於 Maven 專案? 完全相容——只要加入倉庫與相依性即可。
什麼是「edit word document java」?
將 .docx 檔案載入記憶體,透過 API 修改其內容(文字、圖片、表格、巨集),再將更新後的檔案寫回磁碟或串流,即為「edit word document java」的含義。GroupDocs.Editor 抽象化 Office Open XML 格式,提供簡易的 HTML 為基礎編輯模型,讓您把文件視為網頁來處理。
為什麼使用 GroupDocs.Editor 來編輯 word document java?
GroupDocs.Editor 讓您 convert docx to docm 並在不安裝 Microsoft Office 的情況下執行批次操作。它支援 30 多種輸入與輸出格式,以低於 200 MB 堆積記憶體處理數百頁的檔案,且能在一般 8 核心伺服器上以每分鐘 150 份文件的速度 批次處理 word docs。此程式庫亦會保留 DOCM 檔案中的巨集,維持原始樣式,並可在任何相容 Java 的平台上執行。
前置條件
- Java 8 或更新版本,以及建置工具(Maven 或 Gradle)。
- 取得 GroupDocs.Editor for Java 程式庫(版本 25.3 或以上)。
- 具備 Java 與 Maven 相依性管理的基本知識。
設定 GroupDocs.Editor for Java
透過 Maven 安裝
將 GroupDocs 倉庫與相依性加入您的 pom.xml:
<repositories>
<repository>
<id>repository.groupdocs.com</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 page 下載最新的 JAR。
取得授權
先使用免費試用版探索 API。正式上線時,請從 GroupDocs 入口網站取得臨時或完整授權。
基本初始化與設定
Editor 是提供載入、編輯與儲存 Word 文件功能的核心類別。建立指向來源 DOCX 檔案的 Editor 實例:
import com.groupdocs.editor.Editor;
import com.groupdocs.editor.options.WordProcessingLoadOptions;
String inputFilePath = "YOUR_DOCUMENT_DIRECTORY/sample.docx";
Editor editor = new Editor(inputFilePath, new WordProcessingLoadOptions());
現在您已準備好載入、編輯與儲存文件。
如何使用 GroupDocs.Editor 將 docx 轉換為 docm
載入 DOCX,視需要修改其 HTML,然後將結果另存為 DOCM 檔案。此轉換僅需三個 API 呼叫:實例化 Editor、將文件載入 EditableDocument,以及使用 Docm 選項呼叫 save。儲存後,您可進一步處理 DOCM,例如上傳至文件管理系統或附加於電子郵件,而不會遺失任何嵌入的巨集或格式。
步驟 1:載入文件
EditableDocument 代表可作為 HTML 編輯的 Word 檔案。載入後會回傳此物件,您即可對其進行操作。
import com.groupdocs.editor.Editor;
import com.groupdocs.editor.EditableDocument;
String inputFilePath = "YOUR_DOCUMENT_DIRECTORY/sample.docx";
Editor editor = new Editor(inputFilePath, new WordProcessingLoadOptions());
EditableDocument defaultWordProcessingDoc = editor.edit();
步驟 2:(可選)編輯內容
如果需要取代佔位符,請使用標準的字串取代或正規表達式技術更新嵌入的 HTML。
String allEmbeddedInsideString = defaultWordProcessingDoc.getEmbeddedHtml();
String modifiedContent = allEmbeddedInsideString.replace("Subtitle", "Edited subtitle");
步驟 3:另存為 DOCM
設定 DOCM 格式的儲存選項,並將結果寫入檔案或串流。
import com.groupdocs.editor.options.WordProcessingSaveOptions;
import com.groupdocs.editor.formats.WordProcessingFormats;
WordProcessingSaveOptions docmSaveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Docm);
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
String outputDocmPath = "YOUR_OUTPUT_DIRECTORY/editedDoc.docm";
try (OutputStream outputStream = new ByteArrayOutputStream()) {
// Create a new EditableDocument from the (possibly) modified HTML
EditableDocument editedDocDocm = EditableDocument.fromMarkup(modifiedContent, null);
editor.save(editedDocDocm, outputStream, docmSaveOptions);
// If you need a physical file, write the stream to disk here
}
Pro tip: 在完成後盡快釋放
EditableDocument與Editor物件,以釋放原生資源並降低記憶體使用量。
另存文件為 RTF
當下游系統僅支援 RTF 時,匯出為 Rich Text Format 非常有用。同一個 EditableDocument 可使用 RTF 選項儲存。
import com.groupdocs.editor.options.WordProcessingSaveOptions;
import com.groupdocs.editor.formats.WordProcessingFormats;
String outputRtfPath = "YOUR_OUTPUT_DIRECTORY/editedDoc.rtf";
WordProcessingSaveOptions rtfSaveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Rtf);
EditableDocument editedDocRtf = EditableDocument.fromMarkup(modifiedContent, null);
editor.save(editedDocRtf, outputRtfPath, rtfSaveOptions);
editedDocRtf.dispose();
editor.dispose();
另存文件為純文字
純文字輸出非常適合用於索引、分析或供搜尋引擎使用。
import com.groupdocs.editor.options.TextSaveOptions;
import java.nio.charset.StandardCharsets;
TextSaveOptions textSaveOptions = new TextSaveOptions();
textSaveOptions.setEncoding(StandardCharsets.UTF_8);
textSaveOptions.setPreserveTableLayout(true);
String outputTxtPath = "YOUR_OUTPUT_DIRECTORY/editedDoc.txt";
editor.save(editedDocTxt, outputTxtPath, textSaveOptions);
實務應用
- 自動化報告產生 – 從資料庫提取資料、取代佔位符,並輸出精緻的 DOCX、DOCM 或 RTF 報告。
- 自訂 Word 範本 – 根據使用者輸入動態填寫行銷或法律範本。
- 將 Word 匯出為 txt – 提取原始文字供搜尋索引、分析或後續處理使用。
- 在 docx 中取代文字 – 使用 HTML 標記 API 在單一批次作業中對多個文件執行大量搜尋與取代。
效能考量
- 盡快釋放
EditableDocument與Editor物件,以釋放原生資源。 - 對於非常大的檔案,請將段落分塊處理或使用串流 API,以將記憶體使用量控制在 250 MB 以下。
- 在執行大量文字取代時,建議使用
StringBuilder或編譯過的正規表達式,以降低 CPU 開銷。
常見問題與解決方案
License 類別會套用您的 GroupDocs.Editor 授權檔,以啟用完整功能。
| Issue | Solution |
|---|---|
| 找不到檔案 / 存取被拒 | 確認絕對路徑,並確保 Java 程序具有讀寫權限。 |
| 大型文件記憶體不足錯誤 | 增加 JVM 堆積記憶體(-Xmx2g)或在編輯前將文件拆分為較小的部分。 |
| 取代後格式遺失 | 謹慎使用 HTML 標記 API;避免直接取代標記標籤本身。 |
| 授權未套用 | 在建立 Editor 前呼叫 License license = new License(); license.setLicense("path/to/license.file");。 |
常見問答
Q: 我可以編輯受密碼保護的 Word 檔案嗎?
A: 可以。使用包含密碼的 WordProcessingLoadOptions 載入文件,然後照常操作。
Q: GroupDocs.Editor 是否支援 DOCM 檔案中的巨集?
A: 程式庫會保留巨集但不會執行它們。您可以將 DOCM 檔案以保留現有巨集的方式儲存。
Q: 我該如何處理文件中嵌入的圖片?
A: 圖片會作為 HTML 標記的一部分保留。可使用標準 HTML 取代 <img> 標籤或新增標籤。
Q: 能直接轉換為 PDF 嗎?
A: GroupDocs.Editor 專注於編輯;若需 PDF 轉換,可在儲存編輯後的 DOCX 後,結合 GroupDocs.Conversion 使用。
Q: 支援哪些 Java 版本?
A: 完全支援 Java 8 及更新版本。
結論
您現在已掌握使用 GroupDocs.Editor convert docx to docm 的完整端對端工作流程。透過載入 DOCX、(可選)編輯其 HTML,並匯出為 DOCM、RTF 或純文字,您可以在 Java 應用程式中自動化無數以文件為中心的任務。探索其他功能,如拼寫檢查、變更追蹤,或與 GroupDocs.Conversion 整合,以進一步擴充您的解決方案。
最後更新: 2026-09-16
測試環境: GroupDocs.Editor 25.3 for Java
作者: GroupDocs