文字處理文檔是起草合同、協議、文件和許多其他官方文檔的最常用方式。如果您需要比較和合併兩個 Word 文檔,就像 Microsoft Word 的跟踪更改選項一樣,我們可以在我們的 .NET 應用程序中以編程方式進行。在本文中,我們將討論如何使用 C# 比較兩個 Word 文檔並突出顯示已識別的差異。此外,我們還將了解如何比較受密碼保護的文檔、接受和拒絕更改,以及如何使用 C# 示例比較兩個以上的文檔。
此處討論以下主題:
用於比較 Word 文檔的 .NET API
GroupDocs.Comparison 提供了一個 .NET API,允許在 .NET 應用程序中比較並合併多種文件格式的各種文檔。我將使用其 .NET API,即 GroupDocs.Comparison for .NET 來比較 Word 文檔。
您可以從 下載部分 下載 DLL 或 MSI 安裝程序,或通過 NuGet 在您的 .NET 應用程序中安裝 API。
PM> Install-Package GroupDocs.Comparison
使用 C# 比較 Word 文檔
如果您有一個文檔的兩個版本,您可以比較文檔以找出它們的差異(添加、刪除)並創建一個顯示所有更改的新文檔。以下是比較任意兩個 Word 文檔並突出顯示差異的步驟。
以下 C# 代碼顯示瞭如何比較 Word 文檔並在生成的文檔中獲取更改。
/*
* 使用 C# 比較兩個 Word 文檔並突出顯示更改
*/
using (Comparer comparer = new Comparer("path/document.docx"))
{
comparer.Add("path/document-ver2.docx");
comparer.Compare("path/compared-result.docx");
}
使用 C# 接受或拒絕 Word 文檔的已識別更改
類似於 MS Word 的跟踪更改選項,您可以接受或拒絕每個已識別的更改。以下是比較然後接受或拒絕 Word 文檔中已識別的更改的步驟。
- 使用 Comparer 類加載源文檔並添加目標 Word 文檔。
- 使用 Compare() 方法比較加載的文檔。
- 使用 GetChanges() 方法獲取已識別的更改。
- 現在您可以遍歷更改並設置每個更改的 ComparisonAction。
- 對於每個更改,您都可以選擇接受或拒絕。
- 完成更改後,調用 ApplyChanges() 方法以獲取具有已應用更改的結果文檔。
以下 C# 源代碼比較兩個 Word 文檔,然後接受一個確定的更改,然後拒絕另一個。
/*
* 通過使用 C# 比較 Word 文檔來接受和拒絕已識別的更改
*/
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
comparer.Add("path/document-2.docx");
comparer.Compare();
ChangeInfo[] changes = comparer.GetChanges();
// 拒絕第一個確定的更改,並且不會將其添加到結果文檔中
changes[0].ComparisonAction = ComparisonAction.Reject;
comparer.ApplyChanges("path/rejected-change-result.docx", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });
changes = comparer.GetChanges();
changes[0].ComparisonAction = ComparisonAction.Accept;
comparer.ApplyChanges("path/accepted-change-result.docx", new ApplyChangeOptions { Changes = changes });
}
使用 C# 比較兩個以上的文檔
同樣,可以一次比較兩個以上的文檔。以下是比較多個 Word 文檔的差異並突出顯示已識別更改的步驟。
以下 C# 代碼顯示瞭如何比較兩個以上的 Word 文檔並獲取結果文檔中的更改。
/*
* 使用 C# 比較多個 Word 文檔
*/
using (Comparer comparer = new Comparer("path/document-1.docx"))
{
comparer.Add("path/document-2.docx");
comparer.Add("path/document-3.docx");
comparer.Add("path/document-4.docx");
comparer.Compare("path/compare-result.docx");
}
使用 C# 比較受密碼保護的 Word 文檔
如果您的文檔受密碼保護,只需在加載文檔時提供密碼即可。以下步驟展示了我們如何使用 C# 比較受密碼保護的文檔的內容。
以下 C# 代碼示例比較兩個受密碼保護的 Word 文件並生成突出顯示差異的結果文檔。
/*
* 使用 C# 比較受密碼保護的 Word 文檔
*/
using (Comparer comparer = new Comparer("path/protected-document-1.docx", new LoadOptions(){ Password = "SourceFilePassword" }))
{
comparer.Add("path/protected-document-2.docx", new LoadOptions() { Password = "TargetFilePassword" });
comparer.Compare("path/compared-protected-docs-result.docx");
}
獲取免費的 API 許可證
您可以 獲得免費的臨時許可證 以不受評估限制地使用 API。
結論
總而言之,我們學會了使用 C# 比較兩個或多個 Word 文檔。此外,在突出差異之後,我們學會了以編程方式接受和拒絕已識別的更改。最後,我們還討論瞭如何比較 .NET 應用程序中受密碼保護的 Word 文檔。
還有許多其他控制比較結果的自定義,例如設置比較靈敏度、僅顯示摘要頁面、忽略間隙等等。詳細了解適用於 GroupDocs.Comparison for .NET。訪問它的文檔,開始為各種支持的文檔格式構建您自己的文檔比較應用程序。如有疑問,請通過論壇 聯繫我們。