如何使用 GroupDocs.Comparison 比較 Word 文件
在本完整教學中,您將學會在 .NET 中自動 比較 Word 文件,使用 GroupDocs.Comparison。無論您是在建構合約審核系統、版本控制平台,或只是需要可靠的方式找出兩個草稿之間的變更,本指南將一步步說明從環境設定到效能調校,讓您以快速、程式化的比較取代手動且易出錯的檢查。
快速回答
- GroupDocs.Comparison 的功能是什麼? 它能在毫秒內偵測兩個文件版本之間的插入、刪除、格式變更與結構差異。
- 支援哪些檔案類型? 超過 100 種格式,包括 DOCX、PDF、PPTX 與 XLSX。
- 需要付費授權嗎? 開發階段可使用免費試用版;正式上線需購買商業授權。
- 可以比較大型檔案嗎? 可以——使用串流與適當的資源釋放,即可處理上百頁的文件。
- API 是否支援非同步? 您可以將同步呼叫包在
Task.Run中,或使用即將推出的非同步重載,以避免阻塞 UI。
什麼是比較 Word 文件?
比較 Word 文件 是指以程式方式找出兩個 Word 檔案之間的所有變更。使用 GroupDocs.Comparison,只需一行 API 呼叫即可分析來源與目標文件,產生包含文字編輯、格式調整與結構修改的詳細變更清單。這讓自動化審核工作流程成為可能,消除手動檢查,並確保在大量文件集上取得一致且可稽核的結果。
為什麼要自動化文件比較?
使用 GroupDocs.Comparison 自動化文件比較可減少人工成本、避免人為錯誤,且能隨文件量增長而輕鬆擴展。此函式庫可處理 100+ 格式,在一般伺服器硬體上於一秒內比較上百頁的文件,將審核時間縮短最高 95 %。這樣的速度與可靠性協助企業符合合規期限、加速合約談判,並在不需昂貴人工的情況下維持正確的版本歷史。
前置條件與環境設定
在撰寫程式碼之前,請確認您的開發環境符合以下需求:
- Visual Studio 2017 或更新版本(建議 2022)
- .NET Framework 4.6.2 以上、.NET Core 3.1 以上,或 .NET 5+
- 基本的 C# 知識(檔案串流、
using陳述式) - GroupDocs.Comparison for .NET v25.4.0 或更新版本
- 有效的授權檔(免費試用版可用於評估)
安裝 GroupDocs.Comparison
Option 1: NuGet Package Manager Console
Install-Package GroupDocs.Comparison -Version 25.4.0
Option 2: .NET CLI
dotnet add package GroupDocs.Comparison --version 25.4.0
小技巧: 在 Visual Studio 的 NuGet UI 中搜尋 “GroupDocs.Comparison”,即可一鍵安裝。更多資訊請參閱 GroupDocs.Comparison .NET 文件。
取得授權
- 免費試用: 適合學習 – 在此取得 | 開始免費試用 | GroupDocs 釋出頁面
- 臨時授權: 延長評估期限 – 取得臨時授權 | 取得臨時授權
- 商業授權: 正式上線使用 – 購買選項在此 | 購買授權 | 詳細 API 文件
如需社群支援,請前往 GroupDocs 論壇。
設定您的第一個文件比較
基本專案結構
建立一個新的 Console 應用程式,並加入以下 using 指示詞:
using System.IO;
using GroupDocs.Comparison;
using GroupDocs.Comparison.Result;
初始化 Comparer 並載入文件
Comparer 類別是所有比較操作的入口點。它會保留來源文件,並允許您加入一或多個目標文件。
using System.IO;
using GroupDocs.Comparison;
string documentDirectory = "YOUR_DOCUMENT_DIRECTORY"; // Define your input documents directory.
// Initialize Comparer with a source document stream.
using (Comparer comparer = new Comparer(File.OpenRead(Path.Combine(documentDirectory, "source.docx"))))
{
// Add target document for comparison.
comparer.Add(File.OpenRead(Path.Combine(documentDirectory, "target.docx")));
}
執行實際比較
呼叫 Compare() 會執行差異演算法,回傳包含所有偵測變更的 ComparisonResult。
// Perform the comparison operation.
comparer.Compare();
取得與管理文件變更
取得所有偵測到的變更
比較完成後,您可以遍歷 Changes 集合,檢查每一筆修改。
using System;
using GroupDocs.Comparison.Result;
ChangeInfo[] changes = comparer.GetChanges();
拒絕不需要的變更
您可以捨棄對工作流程無關的變更,例如自動格式調整。
// Example: Reject the first change (e.g., not adding an inserted word).
changes[0].ComparisonAction = ComparisonAction.Reject;
comparer.ApplyChanges(Path.Combine(outputPath, "result_with_rejected_change.docx"), new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });
接受重要變更
相反地,您可以以程式方式接受必須保留在最終文件中的變更。
// Retrieve changes again for acceptance example.
changes = comparer.GetChanges();
// Example: Accept the first change.
changes[0].ComparisonAction = ComparisonAction.Accept;
comparer.ApplyChanges(Path.Combine(outputPath, "result_with_accepted_change.docx"), new ApplyChangeOptions { Changes = changes });
何時在專案中使用文件比較
版本控制與變更追蹤
- 軟體文件: 自動追蹤 API 手冊更新。
- 政策文件: 即時偵測法規修訂。
- 內容管理: 保持文章歷史一致。
法務與合規應用
- 合約審核: 為法律團隊標示條款變更。
- 法規合規: 稽核必須符合標準的文件變更。
- 盡職調查: 快速比較合併相關協議。
協作工作流程
- 團隊編輯: 顯示每位貢獻者的編輯內容。
- 客戶審核: 提供乾淨的變更日誌以供批准。
- 品質保證: 驗證最終交付品符合規格。
常見問題與除錯
檔案格式相容性問題
問題: 出現 “Unsupported file format” 錯誤。
解決方案: GroupDocs.Comparison 支援 100+ 格式;請參考 格式清單 或 完整清單。將不支援的檔案轉換為 DOCX 或 PDF 後再比較。
大型文件的記憶體問題
問題: OutOfMemoryException 發生於極大檔案。
解決方案:
- 使用串流而非一次載入整個文件。
- 提升應用程式的記憶體上限。
- 將文件分段比較,之後再合併結果。
效能優化建議
問題: 複雜文件的比較感覺緩慢。
最佳實踐:
- 以
using立即釋放串流。 - 僅比較必要的文件區段。
- 若同一對文件頻繁比較,請快取結果。
- 批次作業可使用平行處理。
授權與驗證問題
問題: 授權驗證失敗或試用限制已達。
快速修正:
- 將授權檔放在可執行檔根目錄。
- 確認授權版本與執行環境相符(開發 vs. 正式)。
效能優化最佳實踐
資源管理
// Always use using statements for proper disposal
using (Comparer comparer = new Comparer(sourceStream))
{
comparer.Add(targetStream);
comparer.Compare();
// Resources are automatically disposed here
}
記憶體最佳化策略
- 盡快關閉不再使用的串流。
- 以批次方式處理文件,保持工作集小。
- 若觀察到記憶體壓力,可在大型批次執行後呼叫
GC.Collect()。
正式環境的擴充
- 將比較呼叫包在
Task.Run中,以免阻塞 UI。 - 將常比較的文件快取於記憶體或分散式快取中。
- 透過負載平衡器將工作負載分散至多個服務實例。
真實案例實作範例
自動化合約審核系統
// This is how you might build an automated contract review workflow
public async Task<ContractReviewResult> ReviewContractChanges(string originalContract, string modifiedContract)
{
using (var comparer = new Comparer(File.OpenRead(originalContract)))
{
comparer.Add(File.OpenRead(modifiedContract));
comparer.Compare();
var changes = comparer.GetChanges();
return new ContractReviewResult
{
TotalChanges = changes.Length,
CriticalChanges = changes.Count(c => IsCriticalChange(c)),
Changes = changes
};
}
}
文件版本控制整合
將比較引擎與類 Git 版本庫結合,於每次提交自動產生變更日誌。
合規與稽核工作流程
設定排程工作,掃描受管控的資料夾,將新上傳的檔案與最後一次批准的版本比較,並將突顯差異的報告以電郵方式送給合規團隊。
常見問答
Q: 可以比較哪些檔案格式?
A: 超過 100 種格式,包括 DOCX、PDF、XLSX、PPTX、TXT 與 HTML,皆受支援。完整清單請參閱官方文件頁面。
Q: 可以在不購買授權的情況下使用 GroupDocs.Comparison 嗎?
A: 可以,免費試用版提供完整功能,只是有少量使用限制,適合開發與小規模測試。
Q: 如何處理大型文件而不致記憶體不足?
A: 使用串流、分段比較,並確保所有串流都以 using 釋放。
Q: 能否比較受密碼保護的文件?
A: 完全可以。載入文件串流時提供密碼,API 會即時解密。
Q: 可以自訂偵測哪些類型的變更嗎?
A: 可以。透過設定 ComparisonOptions,依需求啟用或停用文字、格式或結構變更的偵測。
結論
您現在已掌握使用 GroupDocs.Comparison 在 .NET 中 比較 Word 文件 的完整、可投入生產的路線圖。從最初設定到進階效能調校,這個函式庫讓您自動化繁瑣的手動審核、保證結果一致,並能每日處理上千份文件。先從簡單範例開始,試驗變更管理 API,逐步將工作流程整合至更大的文件管理或合規平台。
最後更新: 2026-09-30
測試版本: GroupDocs.Comparison 25.4.0 for .NET
作者: GroupDocs