Vergelijk CSV-bestanden met C# .NET

We hebben onlangs [de basismanier om twee CSV-bestanden te vergelijken] besproken12 binnen onze .NET-applicaties. Vandaag, in dit artikel, zullen we verder leren om meer dan twee CSV’s te vergelijken met behulp van C#. Daarnaast bespreken we hoe u de met een wachtwoord beveiligde CSV-bestanden kunt vergelijken. Last but not least, hoe de gevonden wijzigingen te accepteren en af te wijzen met behulp van C# binnen de .NET-toepassing.

De volgende onderwerpen komen hieronder aan bod:

.NET API voor het vergelijken van CSV-bestanden

GroupDocs.Comparison heeft zijn .NET API waarmee CSV-bestanden op verschillende manieren kunnen worden vergeleken. We zullen het gebruiken om CSV-bestanden binnen de .NET-toepassing te vergelijken. Het ondersteunt verder de vergelijking van meer dan twee CSV-bestanden, met een wachtwoord beveiligde bestanden, waarbij de ontdekte wijzigingen worden geaccepteerd en afgewezen.

U kunt de DLL’s of het MSI-installatieprogramma downloaden van de downloadsectie of de API installeren door het bijbehorende pakket toe te voegen aan uw .NET-toepassing via NuGet.

PM> Install-Package GroupDocs.Comparison

Uitvoerende voorbeelden van de functies zijn ook beschikbaar op GitHub. Bezoek de bijbehorende documentatie en API-referentie voor hulp.

CSV-bestanden vergelijken met C#

We hebben de basisvergelijking van twee CSV-bestanden al eerder besproken. Daar hebben we gekeken naar de C#-broncode voor het vergelijken van bestanden, voorbeeldinvoerbestanden ter vergelijking en het vergelijkingsuitvoerbestand. U kunt dat artikel bezoeken voor een basisvergelijking.

Vergelijk meer dan twee CSV-bestanden met C#

Als u meer dan twee CSV-bestanden heeft om te vergelijken, hoeft u zich nergens zorgen over te maken. Het is net zo eenvoudig als het vergelijken van twee bestanden. U hoeft alleen het derde bestand aan de Comparer toe te voegen.

Hieronder volgen de stappen om meer dan twee CSV-bestanden te vergelijken met C#.

  • Instantiseer de klasse Comparer met het eerste CSV-bestand om te vergelijken.
  • Voeg het tweede CSV-bestand toe met behulp van de juiste methode Toevoegen.
  • Voeg op dezelfde manier zoveel andere CSV-bestanden toe met behulp van de methode Toevoegen.
  • Roep ten slotte de Compare-methode aan om de vergelijkingsresultaten van alle toegevoegde CSV-bestanden te krijgen.

De volgende C#-broncode vergelijkt meerdere CSV-bestanden en genereert de vergelijkingsresultaten in afzonderlijke CSV- en HTML-bestanden. Het HTML-uitvoerbestand markeert de wijzigingen in verschillende kleuren.

// Meerdere (meer dan 2) CSV-bestanden vergelijken met C#

using (Comparer comparer = new Comparer("path/comma-separated-file-1.csv"))
{
    // Meerdere CSV-bestanden toevoegen om te vergelijken
    comparer.Add("path/comma-separated-file-2.csv");
    comparer.Add("path/comma-separated-file-3.csv");
    // ...
    // ...
    comparer.Compare("path/comparison-result.csv");
}

Vergelijk wachtwoordbeveiligde CSV-bestanden met C#

Als uw CSV-bestanden met een wachtwoord zijn beveiligd, hoeft u alleen het wachtwoord op te geven tijdens het laden van deze bestanden. Er is geen verschil in de rest van de procedure voor het vergelijken van meerdere met een wachtwoord beveiligde CSV-bestanden.

Hieronder volgen de stappen om met een wachtwoord beveiligde CSV-bestanden te vergelijken met C#.

  • Bereid de laadopties voor met behulp van de klasse LoadOptions en door het wachtwoord in te stellen om het CSV-bestand te openen.
  • Laad het eerste CSV-bestand om te vergelijken terwijl u de klasse Comparer instantiseert.
  • Voeg het tweede CSV-bestand toe met behulp van de juiste methode Toevoegen.
  • Voeg op dezelfde manier zoveel andere CSV-bestanden toe met behulp van een van de Add-methoden.
  • Roep ten slotte de Compare-methode aan om de vergelijking van alle toegevoegde CSV-bestanden te krijgen.

De volgende C#-broncode vergelijkt meerdere met een wachtwoord beveiligde CSV-bestanden en genereert de vergelijkingsresultaten in afzonderlijke CSV- en HTML-bestanden.

// Vergelijk met een wachtwoord beveiligde CSV-bestanden (Comma Separated Values) met 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");
}

Geïdentificeerde wijzigingen van CSV-bestanden accepteren of weigeren met C#

Net als de functie van Microsoft Word, kunt u de optie voor het bijhouden van wijzigingen implementeren voor de CSV-bestanden binnen uw .NET-toepassingen. Na de bestandsvergelijking kunt u elk van de geïdentificeerde wijzigingen accepteren of weigeren. Hieronder volgen de stappen om CSV-bestanden te vergelijken en vervolgens de geïdentificeerde wijzigingen te accepteren of te weigeren.

  • Laad de bron en voeg CSV-doelbestanden toe met behulp van de klasse Comparer.
  • Voer de vergelijking van de geladen bestanden uit met behulp van de vergelijkingsmethode.
  • Haal de geïdentificeerde wijzigingen op met behulp van de methode GetChanges.
  • Nu kunt u de wijzigingen doorlopen en de ComparisonAction van elke wijziging instellen.
    • Voor de overeengekomen wijzigingen kunt u deze instellen op Accepteren.
    • Voor de niet-goedgekeurde wijzigingen kunt u deze instellen als Weigeren.
  • Roep ten slotte de methode ApplyChanges aan om het resulterende document met de toegepaste wijzigingen op te halen.

De volgende C#-broncode vergelijkt twee CSV-bestanden en accepteert vervolgens de wijzigingen dienovereenkomstig.

/*
 * Accepteer of verwerp geïdentificeerde wijzigingen door CSV-bestanden te vergelijken met 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();
    
    // Het afwijzen van de eerste en het accepteren van de tweede geïdentificeerde wijziging.
    changes[0].ComparisonAction = ComparisonAction.Reject;
    changes[1].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges("path/track-changes-result.csv", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });
}

Ontvang een gratis API-licentie

U kunt een gratis tijdelijke licentie krijgen om de API te gebruiken zonder de evaluatiebeperkingen.

Conclusie

Kortom, vandaag hebben we geleerd hoe we twee of meer CSV-bestanden kunnen vergelijken met C#. Samen met de vergelijking van met een wachtwoord beveiligde CSV-bestanden, hebben we geleerd om de geïdentificeerde wijzigingen binnen de .NET-applicaties programmatisch te accepteren en af te wijzen.

Er zijn veel andere aanpassingen om de vergelijkingsresultaten te beheren, zoals het instellen van de vergelijkingsgevoeligheid, het tonen van alleen de overzichtspagina, het negeren van hiaten en nog veel meer. Lees meer over deze functies in de documentatie.

U kunt beginnen met het bouwen van uw eigen vergelijkingsapplicaties voor verschillende ondersteunde documentindelingen. Neem voor vragen contact met ons op via het forum.

Zie ook