介紹

無論您處理的是合約、內部政策、技術規範,或是行銷文案,模式都是相同的:您很快就會累積多個 .docx 版本,並在某個時點需要查看它們之間究竟有什麼變更。Word 內建的 Compare 對話框對於偶爾的手動檢查而言還算不錯,但當比較成為日常流程或需要在伺服器端自動化時,就顯得力不從心。

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

  1. 修訂模式 — 差異以 Word 修訂(追蹤變更)標記的形式寫入。審閱者開啟檔案後,會看到熟悉的 Review → Accept / Reject 控制項,逐一處理變更。
  2. 強調模式 — 插入、刪除與修改的文字會直接以顏色標記顯示在文件正文中,讓您在閱讀最終文字時一眼即可看出差異。

在本文中,我們將示範這兩種方法的完整 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);
}

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

比較結果(修訂/追蹤變更)模式

底層發生的事情:

  • 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);
}

強調模式產生的文件:

比較結果(強調模式)

底層發生的事情:

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

強調模式在內部需要執行更多工作,因為它必須實際修改文件內容並套用格式。對於大型檔案,您可能會注意到與修訂模式相比,效能差異相當明顯。


探索 WordCompareOptions

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

此外,基礎的 CompareOptions 亦提供插入、刪除與變更項目的樣式設定(InsertedItemStyleDeletedItemStyleChangedItemStyle),讓您在需要時微調高亮的顏色與格式。

以下是一段在修訂模式下僅檢查純文字的選項設定範例:

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(); // returns 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 類別讓您得以微調輸出──從樣式偵測、作者標記到書籤與文件屬性比較皆可自訂。

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

其他資源