Porównaj pliki CSV przy użyciu C# .NET

Niedawno omawialiśmy podstawowy sposób porównywania dwóch plików CSV w naszych aplikacjach .NET. Dzisiaj w tym artykule nauczymy się dalej porównywać więcej niż dwa pliki CSV przy użyciu języka C#. Dodatkowo omówimy, jak porównać pliki CSV chronione hasłem. Last but not least, jak zaakceptować i odrzucić znalezione zmiany za pomocą C# w aplikacji .NET.

Poniżej omówiono następujące tematy:

Interfejs API platformy .NET do porównywania plików CSV

GroupDocs.Comparison ma swój .NET API, który umożliwia porównywanie plików CSV na różne sposoby. Wykorzystamy go do porównania plików CSV w aplikacji .NET. Ponadto obsługuje porównywanie więcej niż dwóch plików CSV, plików chronionych hasłem, akceptowanie i odrzucanie wykrytych zmian.

Możesz pobrać instalator DLL lub MSI z sekcji pobierania lub zainstalować API, dodając jego pakiet do swojej aplikacji .NET za pośrednictwem NuGet.

PM> Install-Package GroupDocs.Comparison

Przykłady uruchomień dla jego funkcji są również dostępne na GitHub. Odwiedź jego dokumentację i API Reference, aby uzyskać wskazówki.

Porównaj pliki CSV przy użyciu C#

O podstawowym porównaniu dwóch plików CSV pisaliśmy już wcześniej. Tam przyjrzeliśmy się kodowi źródłowemu C# porównania plików, przykładowym plikom wejściowym do porównania i plikowi wyjściowemu porównania. Możesz odwiedzić ten artykuł, aby uzyskać podstawowe porównanie.

Porównaj więcej niż dwa pliki CSV przy użyciu języka C#

Jeśli masz więcej niż dwa pliki CSV do porównania, nie ma się czym martwić. Jest to tak proste, jak porównanie dwóch plików. Wystarczy dodać trzeci plik do porównania.

Poniżej przedstawiono kroki, aby porównać więcej niż dwa pliki CSV przy użyciu języka C#.

  • Utwórz instancję klasy Comparer z pierwszym plikiem CSV do porównania.
  • Dodaj drugi plik CSV przy użyciu odpowiedniej metody Add.
  • Podobnie dodaj jak najwięcej innych plików CSV za pomocą metody Add.
  • Na koniec wywołaj metodę Compare, aby uzyskać wyniki porównania wszystkich dodanych plików CSV.

Poniższy kod źródłowy języka C# porównuje wiele plików CSV i generuje wyniki porównania w osobnych plikach CSV i HTML. Plik wyjściowy HTML wyróżnia zmiany różnymi kolorami.

// Porównaj wiele (więcej niż 2) plików CSV przy użyciu języka C#

using (Comparer comparer = new Comparer("path/comma-separated-file-1.csv"))
{
    // Dodawanie wielu plików CSV do porównania
    comparer.Add("path/comma-separated-file-2.csv");
    comparer.Add("path/comma-separated-file-3.csv");
    // ...
    // ...
    comparer.Compare("path/comparison-result.csv");
}

Porównaj pliki CSV chronione hasłem przy użyciu języka C#

Jeśli Twoje pliki CSV są chronione hasłem, wystarczy podać hasło podczas ładowania tych plików. Nie ma różnicy w pozostałej części procedury porównywania wielu plików CSV chronionych hasłem.

Poniżej przedstawiono kroki, aby porównać pliki CSV chronione hasłem przy użyciu języka C#.

  • Przygotuj opcje ładowania używając klasy LoadOptions oraz ustawiając hasło do otwarcia pliku CSV.
  • Załaduj pierwszy plik CSV do porównania podczas tworzenia instancji klasy Comparer.
  • Dodaj drugi plik CSV przy użyciu odpowiedniej metody Add.
  • Podobnie dodaj tyle innych plików CSV, korzystając z dowolnej metody Dodaj.
  • Na koniec wywołaj metodę Compare, aby uzyskać porównanie wszystkich dodanych plików CSV.

Poniższy kod źródłowy języka C# porównuje wiele plików CSV chronionych hasłem i generuje wyniki porównania w osobnych plikach CSV i HTML.

// Porównaj chronione hasłem pliki CSV (wartości oddzielone przecinkami) przy użyciu języka 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");
}

Zaakceptuj lub odrzuć zidentyfikowane zmiany plików CSV przy użyciu języka C#

Podobnie jak funkcja Microsoft Word, możesz zaimplementować opcję śledzenia zmian dla plików CSV w swoich aplikacjach .NET. Po porównaniu plików możesz zaakceptować lub odrzucić każdą ze zidentyfikowanych zmian. Poniżej przedstawiono kroki, aby porównać pliki CSV, a następnie zaakceptować lub odrzucić zidentyfikowane zmiany.

  • Załaduj źródłowy i dodaj docelowy plik CSV przy użyciu klasy Comparer.
  • Wykonaj porównanie załadowanych plików za pomocą metody Compare.
  • Pobierz zidentyfikowane zmiany przy użyciu metody GetChanges.
  • Teraz możesz przejrzeć zmiany i ustawić ComparisonAction każdej zmiany.
    • Dla uzgodnionych zmian możesz ustawić je jako Akceptuj.
    • Dla niezgodnych zmian możesz ustawić je jako Odrzuć.
  • Na koniec Wywołaj metodę ApplyChanges, aby uzyskać wynikowy dokument z zastosowanymi zmianami.

Poniższy kod źródłowy języka C# porównuje dwa pliki CSV, a następnie odpowiednio akceptuje i odrzuca zmiany.

/*
 * Zaakceptuj lub odrzuć zidentyfikowane zmiany, porównując pliki CSV przy użyciu języka 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();
    
    // Odrzucenie pierwszej i Akceptacja drugiej zidentyfikowanej zmiany.
    changes[0].ComparisonAction = ComparisonAction.Reject;
    changes[1].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/track-changes-result.csv", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });
}

Uzyskaj bezpłatną licencję API

Możesz otrzymać bezpłatną licencję tymczasową, aby korzystać z API bez ograniczeń ewaluacyjnych.

Wniosek

Podsumowując, dzisiaj nauczyliśmy się porównywać dwa lub więcej plików CSV za pomocą C#. Wraz z porównaniem chronionych hasłem plików CSV nauczyliśmy się programowo akceptować i odrzucać zidentyfikowane zmiany w aplikacjach .NET.

Istnieje wiele innych dostosowań do kontrolowania wyników porównania, takich jak ustawienie czułości porównania, wyświetlanie tylko strony podsumowania, ignorowanie luk i wiele więcej. Dowiedz się więcej o tych funkcjach z dokumentacji.

Możesz zacząć tworzyć własne porównywarki dla różnych obsługiwanych formatów dokumentów. W przypadku pytań skontaktuj się z nami za pośrednictwem forum.

Zobacz też