Сравните файлы CSV с помощью C# .NET

Недавно мы обсуждали основной способ сравнения двух CSV-файлов в наших приложениях .NET. Сегодня в этой статье мы дополнительно научимся сравнивать более двух CSV с помощью C#. Кроме того, мы обсудим, как сравнивать файлы CSV, защищенные паролем. И последнее, но не менее важное: как принять и отклонить найденные изменения с помощью C# в приложении .NET.

Ниже рассматриваются следующие темы:

.NET API для сравнения файлов CSV

У GroupDocs.Comparison есть свой .NET API, который позволяет сравнивать CSV-файлы различными способами. Мы будем использовать его для сравнения файлов CSV в приложении .NET. Кроме того, он поддерживает сравнение более двух файлов CSV, защищенных паролем файлов, принятие и отклонение обнаруженных изменений.

Вы можете загрузить библиотеки DLL или установщик MSI из раздела загрузок или установить API, добавив его пакет в свое приложение .NET через NuGet.

PM> Install-Package GroupDocs.Comparison

Запущенные примеры его функций также доступны на GitHub. Посетите документацию и справочник по API для получения рекомендаций.

Сравните файлы CSV с помощью C#

Мы уже обсуждали базовое сравнение двух файлов CSV ранее. Там мы рассмотрели исходный код C# для сравнения файлов, примеры входных файлов для сравнения и выходной файл сравнения. Вы можете посетить эту статью для базового сравнения.

Сравните более двух файлов CSV с помощью C#

Если у вас есть более двух файлов CSV для сравнения, не о чем беспокоиться. Это так же просто, как сравнить два файла. Вам просто нужно добавить третий файл в Comparer.

Ниже приведены шаги для сравнения более двух файлов CSV с использованием C#.

  • Создайте экземпляр класса Comparer с первым CSV-файлом для сравнения.
  • Добавьте второй файл CSV, используя соответствующий метод Add.
  • Аналогичным образом добавьте столько же других файлов CSV, используя метод Add.
  • Наконец, вызовите метод Compare, чтобы получить результаты сравнения всех добавленных файлов CSV.

Следующий исходный код C# сравнивает несколько файлов CSV и создает результаты сравнения в отдельных файлах CSV и HTML. Выходной файл HTML выделяет изменения разными цветами.

// Сравните несколько (более 2) файлов CSV с помощью С#

using (Comparer comparer = new Comparer("path/comma-separated-file-1.csv"))
{
    // Добавление нескольких файлов CSV для сравнения
    comparer.Add("path/comma-separated-file-2.csv");
    comparer.Add("path/comma-separated-file-3.csv");
    // ...
    // ...
    comparer.Compare("path/comparison-result.csv");
}

Сравните файлы CSV, защищенные паролем, с помощью C#

Если ваши CSV-файлы защищены паролем, вам просто нужно указать пароль при загрузке этих файлов. В остальной части процедуры сравнения нескольких файлов CSV, защищенных паролем, нет никакой разницы.

Ниже приведены шаги для сравнения файлов CSV, защищенных паролем, с помощью C#.

  • Подготовьте параметры загрузки, используя класс LoadOptions и установив пароль для открытия CSV-файла.
  • Загрузите первый CSV-файл для сравнения при создании экземпляра класса Comparer.
  • Добавьте второй файл CSV, используя соответствующий метод Add.
  • Аналогичным образом добавьте столько же других файлов CSV, используя любой из методов добавления.
  • Наконец, вызовите метод Compare, чтобы получить сравнение всех добавленных файлов CSV.

Следующий исходный код C# сравнивает несколько файлов CSV, защищенных паролем, и создает результаты сравнения в отдельных файлах CSV и HTML.

// Сравните защищенные паролем файлы CSV (значения, разделенные запятыми) с помощью C#

using (Comparer comparer = new Comparer("path/comma-separated-file-1.csv", new LoadOptions(){ Password = "file1-password" }))
{
    comparer.Add("path/comma-separated-file-2.csv", new LoadOptions(){ Password = "file2-password" });
    comparer.Compare("path/comparison-result.csv");
}

Принять или отклонить выявленные изменения файлов CSV с помощью C#

Как и в Microsoft Word, вы можете реализовать опцию отслеживания изменений для CSV-файлов в ваших приложениях .NET. После сравнения файлов вы можете принять или отклонить каждое из выявленных изменений. Ниже приведены шаги для сравнения файлов CSV, а затем принятия или отклонения выявленных изменений.

  • Загрузите исходные и добавьте целевые CSV-файлы, используя класс Comparer.
  • Выполните сравнение загруженных файлов с помощью метода Compare.
  • Получите выявленные изменения с помощью метода GetChanges.
  • Теперь вы можете просмотреть изменения и установить ComparisonAction для каждого изменения.
    • Для согласованных изменений вы можете установить их как Принять.
    • Для несогласных изменений вы можете установить их как Отклонить.
  • Наконец, вызовите метод ApplyChanges, чтобы получить результирующий документ с примененными изменениями.

Следующий исходный код C# сравнивает два CSV-файла, а затем соответственно принимает и отклоняет изменения.

/*
 * Примите или отклоните выявленные изменения, сравнив файлы CSV с помощью C#.
 */
using (Comparer comparer = new Comparer("path/comma-separated-file-1.csv"))
{
    comparer.Add("path/comma-separated-file-2.csv");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // Отклонение первого и принятие второго выявленного изменения.
    changes[0].ComparisonAction = ComparisonAction.Reject;
    changes[1].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/track-changes-result.csv", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });
}

Получите бесплатную лицензию API

Вы можете получить бесплатную временную лицензию, чтобы использовать API без ограничений пробной версии.

Вывод

Подводя итог, сегодня мы научились сравнивать два или более файла CSV с помощью C#. Наряду со сравнением файлов CSV, защищенных паролем, мы научились программно принимать и отклонять выявленные изменения в приложениях .NET.

Существует множество других настроек для управления результатами сравнения, например, настройка чувствительности сравнения, отображение только сводной страницы, игнорирование пробелов и многое другое. Узнайте об этих функциях из документации.

Вы можете начать создавать собственные приложения для сравнения различных поддерживаемых форматов документов. По вопросам обращайтесь к нам через форум.

Смотрите также