Порівняйте файли 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 для порівняння, не варто хвилюватися. Це так само просто, як порівняти два файли. Вам просто потрібно додати третій файл до програми порівняння.

Нижче наведено кроки для порівняння більше двох файлів CSV за допомогою C#.

  • Створіть екземпляр класу Comparer з першим файлом CSV для порівняння.
  • Додайте другий файл CSV за допомогою відповідного методу Add.
  • Так само додайте стільки інших файлів CSV за допомогою методу «Додати».
  • Нарешті, викличте метод Compare, щоб отримати результати порівняння всіх доданих файлів CSV.

Наведений нижче вихідний код C# порівнює кілька файлів CSV і генерує результати порівняння в окремих файлах CSV і HTML. Вихідний файл HTML виділяє зміни різними кольорами.

// Порівняйте кілька (більше 2) файлів CSV за допомогою C#

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.

Є багато інших налаштувань для керування результатами порівняння, як-от налаштування чутливості порівняння, показ лише сторінки підсумків, ігнорування прогалин тощо. Дізнайтеся про ці функції з документації.

Ви можете почати створювати власні програми порівняння для різних підтримуваних форматів документів. Якщо у вас виникли запитання, зв’яжіться з нами через форум.

Дивись також