介紹

不論您處理的是合約、內部政策、技術規格,或是行銷文案,情況都相同:您會快速累積多個 .docx 版本,某個時候需要看清楚它們之間到底有哪些變更。Word 內建的 Compare 對話框對偶爾的手動檢查還算不錯,但當比較成為日常流程的一部分或需要在伺服器端自動化時,則幫助不大。

GroupDocs.Comparison for .NET 讓您可以在程式碼中執行比較,並以審閱者偏好的格式產出結果。此函式庫支援 Word 文件的兩種輸出比較模式:

  1. Revision mode — 差異以 Word 版次(追蹤變更)標記的形式寫入。審閱者開啟檔案後,會看到熟悉的 Review → Accept / Reject 控制,逐一處理變更。
  2. Highlight mode — 插入、刪除與修改的文字直接在文件正文中以顏色標示,使差異一目了然。

在本文中,我們將透過可執行的 C# 範例說明兩種做法,探索 WordCompareOptions 類別及其屬性,並討論何時使用哪一種模式較為合適。

前置條件

開始之前:

  • .NET 6.0 或更新版本。
  • GroupDocs.Comparison for .NET — 以 NuGet 安裝:
dotnet add package GroupDocs.Comparison
  • 一份 授權檔GroupDocs.Comparison.lic)。未授權時函式庫會以評估模式執行,會加上浮水印且有頁數限制。您可以申請暫時授權進行測試。
  • 兩個待比較的 Word 檔案,我們稱之為 source.docxtarget.docx。範例內容如下:
source.docx target.docx

方法 1:修訂追蹤比較

何時使用: 審閱者需要在 Microsoft Word 中使用內建的 Review → Accept / Reject 工具逐一接受或拒絕變更 — 例如在合約談判或政策審批流程中。

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    var options = new WordCompareOptions
    {
        DetectStyleChanges = true,
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions
    };

    comparer.Compare("result_revision.docx", options);
}

產生的文件為 修訂(追蹤變更)模式

Comparison result in revision (track changes) mode

底層發生了什麼:

  • ComparisonDisplayMode.Revisions 告訴引擎輸出原生的 Word 追蹤變更標記。
  • DetectStyleChanges = true 讓比較同時偵測格式差異(粗體、字型大小、顏色)以及文字編輯。
  • 輸出檔案在 Microsoft Word 中開啟時會自動顯示 Review 面板 — 每筆插入、刪除與樣式變更都會列出,使用者可以接受或拒絕。

由於修訂模式只需附加修訂資訊,而不必重新渲染文件內容,通常是兩種模式中較快速的。


方法 2:突顯模式比較

何時使用: 利害關係人想要一個乾淨的文件,能直接顯示變更但不需要逐筆審閱。典型情境是經理在 Word 中快速打開最新版,掃描突顯的插入與刪除,以了解更新的影響。

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    var options = new WordCompareOptions
    {
        DetectStyleChanges = true,
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Highlight
    };

    comparer.Compare("result_highlighted.docx", options);
}

產生的文件為 突顯模式

Comparison result in highlight mode

底層發生了什麼:

  • ComparisonDisplayMode.Highlight 將差異以行內顏色標示 — 紅色代表刪除,綠色代表插入,藍色代表樣式變更(預設顏色可透過 WordCompareOptions / CompareOptions 及其相關的 StyleSettings 調整)。
  • 文件即可直接閱讀或列印,無需額外步驟。
  • 不會在檔案中加入追蹤變更的元資料。

突顯模式因為必須實際修改文件內容並套用格式,內部工作量較大。對於大型檔案,您可能會注意到與修訂模式相比的顯著效能差異。


探索 WordCompareOptions

上述兩個範例皆使用 WordCompareOptions — 這個類別繼承自 CompareOptions 的通用設定,並加入針對 Word 文件的專屬屬性。透過此類別您可以控制顯示模式 (DisplayMode)、是否偵測樣式變更 (DetectStyleChanges)、修訂作者名稱 (RevisionAuthorName)、換行、書籤等比較行為。

此外,基底的 CompareOptions 也公開了插入、刪除與變更項目的樣式屬性 (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle),讓您在需要時微調突顯的顏色與格式。

以下是一個僅針對文字變更、使用修訂模式的設定範例:

var options = new WordCompareOptions
{
    DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions,
    DetectStyleChanges = false,
    RevisionAuthorName = "QA Bot",
    CompareBookmarks = true
};

程式化取得變更

不論您選擇哪種輸出模式(修訂或突顯),都可以透過通用的 Comparer.GetChanges API 取得結構化的差異清單。此方法同時適用於 Word 以及所有其他支援的格式。

using (var comparer = new Comparer("source.docx"))
{
    comparer.Add("target.docx");

    comparer.Compare("result_revision.docx");

    var changes = comparer.GetChanges(); // 回傳 ChangeInfo[]
}

這在您需要在自訂工作流程中後處理變更時相當有用 — 例如產生自訂的 HTML 報告、將差異餵入審核系統,或彙總編輯統計資訊。更多細節請參閱官方 API 文件:Comparer.GetChanges


處理有密碼保護的文件

即使文件受到密碼保護仍可比較:在建立 Comparer 時透過 LoadOptions 傳入密碼。此作法對 Word、PDF 以及其他支援格式皆相同。

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source_protected.docx",
    new LoadOptions { Password = "secret" }))
{
    comparer.Add("target_protected.docx");

    var options = new WordCompareOptions
    {
        DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions
    };

    comparer.Compare("result_protected.docx", options);
}

取得免費試用

您可以從官方發行頁面下載 GroupDocs.Comparison for .NET。欲進行不限次數的測試,請申請暫時授權 — 不需要信用卡。


常見問題

Q: 需要在伺服器上安裝 Microsoft Word 或 Office 嗎?
A: 不需要。GroupDocs.Comparison 是獨立的 .NET 函式庫,可自行讀寫 DOCX 檔案。

Q: 除了 Word,還能比較其他格式嗎?
A: 可以 — 函式庫支援 PDF、Excel、簡報、純文字等多種格式。完整清單請見文件說明

Q: 若未設定授權會發生什麼事?
A: 函式庫會以評估模式執行,輸出文件會加上浮水印且僅處理前幾頁。申請暫時授權即可解除測試限制。

Q: 能自訂突顯顏色嗎?
A: 預設顏色已能滿足大多數需求。如需進階樣式控制,請查看 CompareOptions 上的 StyleSettings 屬性。


結論

GroupDocs.Comparison for .NET 提供兩種簡潔的方式,讓您在程式碼中比較 Word 文件。修訂模式可直接套入團隊已使用的審閱流程;突顯模式則為只需快速了解變更的使用者提供即時的視覺摘要。WordCompareOptions 類別讓您從樣式偵測、作者標記到書籤與文件屬性比較皆可細部調校。

依據您的情境選擇最適合的模式,或同時產生兩種結果,讓不同受眾自行決定偏好的檢視方式。

其他資源