Текстовые документы — наиболее распространенный способ составления контрактов, соглашений, бумаг и многих других официальных документов. Если вам нужно сравнить и объединить два документа Word, точно так же, как параметр отслеживания изменений в Microsoft Word, мы можем сделать это программно в наших приложениях .NET. В этой статье мы обсудим, как сравнить два документа Word и выделить выявленные различия с помощью C#. Кроме того, мы рассмотрим, как сравнивать документы, защищенные паролем, принимать и отклонять изменения, а также сравнивать более двух документов с примерами C#.

Здесь обсуждаются следующие темы:
- Сравнение документов .NET API
- Сравнить два документа Word
- Принять или отклонить выявленные изменения в документе Word
- Сравнить более двух документов Word
- Сравнить файлы Word, защищенные паролем
.NET API для сравнения документов Word
GroupDocs.Comparison предоставляет .NET API, который позволяет сравнивать, а затем объединять различные документы из нескольких форматов файлов в приложении .NET. Я буду использовать его .NET API, т.е. GroupDocs.Comparison for .NET для сравнения документов Word.
Вы можете загрузить библиотеки DLL или установщик MSI из раздела загрузок или установить API в своем приложении .NET через NuGet.
PM> Install-Package GroupDocs.Comparison
Сравните документы Word с помощью C#
Если у вас есть две версии документа, вы можете сравнить документы, найти их различия (добавления, удаления) и создать новый документ, в котором будут показаны все изменения. Ниже приведены шаги для сравнения любых двух документов Word и выявления различий.
- Загрузите первый документ Word, используя класс Comparer.
- Добавьте второй файл в Comparer, используя метод Add().
- Сравните полученную сводку изменений, просто вызвав метод Compare().
В следующем коде C# показано, как сравнивать документы Word и получать изменения в результирующем документе.
/*
* Сравните два документа Word и выделите изменения с помощью C#
*/
using (Comparer comparer = new Comparer("path/document.docx"))
{
comparer.Add("path/document-ver2.docx");
comparer.Compare("path/compared-result.docx");
}
Принять или отклонить выявленные изменения документов Word с помощью C#
Подобно опции отслеживания изменений в MS Word, вы можете принять или отклонить каждое выявленное изменение. Ниже приведены шаги для сравнения, а затем принятия или отклонения выявленных изменений в документах Word.
- Загрузите исходный документ и добавьте целевые документы Word, используя класс Comparer.
- Сравните загруженные документы с помощью метода Compare().
- Получить выявленные изменения с помощью метода GetChanges().
- Теперь вы можете просматривать изменения и устанавливать ComparisonAction для каждого изменения.
- Для каждого изменения вы можете выбрать Принять или Отклонить.
- После внесения изменений вызовите метод ApplyChanges(), чтобы получить результирующий документ с примененными изменениями.
В следующем исходном коде C# сравниваются два документа Word, затем принимается идентифицированное изменение, а затем отклоняется другое.
/*
* Принять и отклонить выявленные изменения, сравнив документы Word с помощью C#.
*/
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 на наличие различий и выделения выявленных изменений.
- Загрузите первый документ Word, используя класс Comparer.
- Продолжайте добавлять другие документы в Comparer, используя метод Add().
- Вызовите метод Compare(), чтобы получить изменения и сводку изменений.
В следующем коде C# показано, как сравнить более двух документов Word и получить изменения в результирующем документе.
/*
* Сравните несколько документов Word с помощью C#
*/
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");
}
Сравните защищенные паролем документы Word с помощью C#
Если ваши документы защищены паролем, просто укажите пароль при загрузке документов. Следующие шаги показывают, как мы можем сравнить содержимое защищенных паролем документов с помощью C#.
- Подготовьте параметры загрузки для исходных и целевых документов, указав пароль.
- Загрузите исходный документ с помощью класса Comparer.
- Добавьте целевой документ в Comparer, используя подготовленные параметры загрузки.
- Получите сводку различий, вызвав метод Compare().
В следующем примере кода C# сравниваются два файла Word, защищенные паролем, и создается результирующий документ, в котором выделяются различия.
/*
* Сравните защищенные паролем документы Word с помощью C#
*/
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 без ограничений пробной версии.
Вывод
В заключение мы научились сравнивать два или более документа Word с помощью C#. Далее, после выделения отличий, мы научились программно принимать и отклонять выявленные изменения. В конце мы также обсудили, как мы можем сравнивать защищенные паролем документы Word в приложениях .NET.
Существует множество других настроек для управления результатами сравнения, таких как настройка чувствительности сравнения, отображение только сводной страницы, игнорирование пробелов и многое другое. Узнайте больше о GroupDocs.Comparison for .NET. Посетите его документацию, чтобы начать создавать собственные приложения для сравнения документов для различных поддерживаемых форматов документов. По вопросам обращайтесь к нам через форум.