Vergleichen Sie CSV-Dateien mit C# .NET

Wir haben kürzlich die grundlegende Methode zum Vergleichen von zwei CSV-Dateien in unseren .NET-Anwendungen besprochen. Heute werden wir in diesem Artikel weiter lernen, mehr als zwei CSV-Dateien mit C# zu vergleichen. Darüber hinaus besprechen wir, wie die passwortgeschützten CSV-Dateien verglichen werden können. Last but not least, wie Sie die gefundenen Änderungen mit C# in einer .NET-Anwendung akzeptieren und ablehnen.

Nachfolgend werden folgende Themen behandelt:

.NET-API zum Vergleichen von CSV-Dateien

GroupDocs.Comparison hat seine .NET API, die es ermöglicht, CSV-Dateien auf verschiedene Weise zu vergleichen. Wir werden es verwenden, um CSV-Dateien innerhalb der .NET-Anwendung zu vergleichen. Es unterstützt außerdem den Vergleich von mehr als zwei CSV-Dateien, passwortgeschützten Dateien, das Akzeptieren und Ablehnen der entdeckten Änderungen.

Sie können die DLLs oder das MSI-Installationsprogramm aus dem Downloadbereich herunterladen oder die API installieren, indem Sie ihr Paket über NuGet zu Ihrer .NET-Anwendung hinzufügen.

PM> Install-Package GroupDocs.Comparison

Laufende Beispiele für seine Funktionen sind auch unter GitHub verfügbar. Weitere Informationen finden Sie in der Dokumentation und API-Referenz.

CSV-Dateien mit C# vergleichen

Den grundsätzlichen Vergleich zweier CSV-Dateien haben wir bereits früher besprochen. Dort haben wir uns den C#-Quellcode für den Dateivergleich, Beispieleingabedateien für den Vergleich und die Vergleichsausgabedatei angesehen. Sie können diesen Artikel für einen grundlegenden Vergleich besuchen.

Vergleichen Sie mehr als zwei CSV-Dateien mit C#

Wenn Sie mehr als zwei CSV-Dateien vergleichen müssen, brauchen Sie sich keine Sorgen zu machen. Es ist genauso einfach wie zwei Dateien zu vergleichen. Sie müssen nur die dritte Datei zum Vergleich hinzufügen.

Im Folgenden finden Sie die Schritte zum Vergleichen von mehr als zwei CSV-Dateien mit C#.

  • Instanziieren Sie die Klasse Comparer mit der ersten zu vergleichenden CSV-Datei.
  • Fügen Sie die zweite CSV-Datei mit der entsprechenden Add-Methode hinzu.
  • Fügen Sie auf ähnliche Weise so viele andere CSV-Dateien mit der Add-Methode hinzu.
  • Rufen Sie zuletzt die Compare-Methode auf, um die Vergleichsergebnisse aller hinzugefügten CSV-Dateien abzurufen.

Der folgende C#-Quellcode vergleicht mehrere CSV-Dateien und generiert die Vergleichsergebnisse in separaten CSV- und HTML-Dateien. Die HTML-Ausgabedatei hebt die Änderungen in verschiedenen Farben hervor.

// Vergleichen Sie mehrere (mehr als 2) CSV-Dateien mit C#

using (Comparer comparer = new Comparer("path/comma-separated-file-1.csv"))
{
    // Hinzufügen mehrerer CSV-Dateien zum Vergleichen
    comparer.Add("path/comma-separated-file-2.csv");
    comparer.Add("path/comma-separated-file-3.csv");
    // ...
    // ...
    comparer.Compare("path/comparison-result.csv");
}

Vergleichen Sie passwortgeschützte CSV-Dateien mit C#

Wenn Ihre CSV-Dateien passwortgeschützt sind, müssen Sie beim Laden dieser Dateien nur das Passwort angeben. Die weitere Vorgehensweise zum Vergleich mehrerer passwortgeschützter CSV-Dateien unterscheidet sich nicht.

Im Folgenden finden Sie die Schritte zum Vergleichen passwortgeschützter CSV-Dateien mit C#.

  • Bereiten Sie die Ladeoptionen mithilfe der Klasse LoadOptions und durch Festlegen des Kennworts zum Öffnen der CSV-Datei vor.
  • Laden Sie die erste zu vergleichende CSV-Datei, während Sie die Klasse Comparer instanziieren.
  • Fügen Sie die zweite CSV-Datei mit der entsprechenden Add-Methode hinzu.
  • Fügen Sie auf ähnliche Weise beliebig viele andere CSV-Dateien mit einer der Add-Methoden hinzu.
  • Rufen Sie zuletzt die Compare-Methode auf, um den Vergleich aller hinzugefügten CSV-Dateien zu erhalten.

Der folgende C#-Quellcode vergleicht mehrere passwortgeschützte CSV-Dateien und generiert die Vergleichsergebnisse in separaten CSV- und HTML-Dateien.

// Vergleichen Sie passwortgeschützte CSV-Dateien (Comma Separated Values) mit 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");
}

Identifizierte Änderungen von CSV-Dateien mit C# akzeptieren oder ablehnen

Genau wie die Funktion von Microsoft Word können Sie die Option zum Nachverfolgen von Änderungen für die CSV-Dateien in Ihren .NET-Anwendungen implementieren. Nach dem Dateivergleich können Sie jede der identifizierten Änderungen akzeptieren oder ablehnen. Im Folgenden finden Sie die Schritte zum Vergleichen von CSV-Dateien und zum Akzeptieren oder Ablehnen der identifizierten Änderungen.

  • Laden Sie die Quell- und fügen Sie Ziel-CSV-Dateien mit der Klasse Comparer hinzu.
  • Führen Sie den Vergleich der geladenen Dateien mit der Compare-Methode durch.
  • Rufen Sie die identifizierten Änderungen mithilfe der GetChanges-Methode ab.
  • Jetzt können Sie die Änderungen durchlaufen und die ComparisonAction jeder Änderung festlegen.
    • Für die vereinbarten Änderungen können Sie diese auf Akzeptieren setzen.
    • Für die abgelehnten Änderungen können Sie sie auf Ablehnen setzen.
  • Rufen Sie schließlich die ApplyChanges-Methode auf, um das resultierende Dokument mit den angewendeten Änderungen abzurufen.

Der folgende C#-Quellcode vergleicht zwei CSV-Dateien und akzeptiert und verwirft dann die Änderungen entsprechend.

/*
 * Akzeptieren oder Ablehnen identifizierter Änderungen durch Vergleichen von CSV-Dateien mit 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();
    
    // Ablehnen der ersten und Akzeptieren der zweiten identifizierten Änderung.
    changes[0].ComparisonAction = ComparisonAction.Reject;
    changes[1].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/track-changes-result.csv", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });
}

Holen Sie sich eine kostenlose API-Lizenz

Sie können eine kostenlose temporäre Lizenz erwerben, um die API ohne die Evaluierungseinschränkungen zu verwenden.

Fazit

Zusammenfassend haben wir heute gelernt, wie man zwei oder mehr CSV-Dateien mit C# vergleicht. Neben dem Vergleich von passwortgeschützten CSV-Dateien haben wir gelernt, die identifizierten Änderungen innerhalb der .NET-Anwendungen programmgesteuert zu akzeptieren und abzulehnen.

Es gibt viele andere Anpassungen, um die Vergleichsergebnisse zu steuern, wie z. B. das Einstellen der Vergleichsempfindlichkeit, das Anzeigen nur der Zusammenfassungsseite, das Ignorieren von Lücken und vieles mehr. Weitere Informationen zu diesen Funktionen finden Sie in der Dokumentation.

Sie können damit beginnen, Ihre eigenen Vergleichsanwendungen für verschiedene unterstützte Dokumentformate zu erstellen. Bei Fragen kontaktieren Sie uns über das Forum.

Siehe auch