VERGLEICH MIT ANDEREN KOMPONENTEN

Ein Vergleich zwischen IronXL und CsvWriter

Veröffentlicht 18. Mai 2022
Teilen Sie:

Die Arbeit mit CSV-Dateien kann eine schwierige Aufgabe sein. Heute gibt es jedoch zahlreiche Bibliotheken, die Entwicklern bei dieser Aufgabe helfen, ohne dass Microsoft Excel installiert sein muss.

In diesem Artikel werden wir besprechen und vergleichen, wie man mit Microsoft Excel-Dokumenten programmatisch in C# .NET-Technologien arbeiten kann, entweder im CSV-Format oder im Standard-Excel-Format, unter Verwendung von zwei der beliebtesten Bibliotheken, IronXL und CSVWriter.

Schauen wir uns zunächst einmal an, was beide Bibliotheken zu bieten haben.

Die IronXL-Bibliothek

IronXL ist eine .NET-Bibliothek, die das Lesen und Bearbeiten von Microsoft Excel-Dokumenten mit C# erleichtert. IronXL. Excel ist eine eigenständige .NET-Softwarebibliothek zum Lesen einer breiten Palette von Tabellenkalkulationsformaten. Es erfordert weder die Installation von Microsoft Excel, noch ist es von Interop abhängig.

IronXL ist eine intuitive C#-API, die es Ihnen ermöglicht, Excel-Tabellendateien in .NET mit blitzschneller Leistung zu lesen, zu bearbeiten und zu erstellen. IronXL unterstützt vollständig .NET Core, .NET-Framework, Xamarin, Mobile, Linux, macOS und Azure.

IronXL ist eine führende .NET Core und .NET-Framework Excel-Tabellenbibliothek für C#.

IronXL Funktionsumfang

  • Laden, Lesen und Bearbeiten von Daten - aus XLS/XLSX/CSV/TSV
  • Speichern und Exportieren - in XLS/XLSX/CSV/TSV/JSON
  • Ranges - einfaches WorkSheet zu verwenden ["A1:B10"] syntax. Kombinieren und erstellen Sie Bereiche intuitiv.
  • Sortieren - Sortierbereiche, Spalten und Zeilen.
  • Styling - visuelle Stile für Zellen, Schriftart, Größe, Hintergrundmuster, Rahmen, Ausrichtung und Zahlenformate.

CSVWriter

Eine .NET-Bibliothek zum Schreiben von CSV-Dateien. Äußerst schnell, flexibel und einfach zu bedienen. Unterstützt das Schreiben eigener Klassenobjekte.

CsvWriter Eigenschaften

  • Schnell: Kompilieren von Klassen im laufenden Betrieb für extrem schnelle Leistung
  • Flexibel: konservativ beim Schreiben, liberal beim Lesen
  • Einfach zu bedienen: Lesen und Schreiben sind so einfach wie GetRecords() und WriteRecords(datensätze)
  • Hochgradig konfigurierbar
  • Linux-Modus
  • Geringe Speichernutzung

1. Erstellen einer Konsolenanwendung

Gehen Sie wie folgt vor, um eine Konsolenanwendung zu erstellen:

  • Starten Sie die Visual Studio 2022 IDE.
  • Klicken Sie auf "Neues Projekt erstellen".
  • Wählen Sie auf der Seite "Neues Projekt erstellen" in der Dropdown-Liste der Sprachen C#, in der Liste Plattformen Windows und in der Liste Projekttypen Konsole.
  • Wählen Sie Konsolenanwendung (.NET-Framework) aus den angezeigten Projektvorlagen.

    Projekt erstellen - Konsolenanwendung

  • Klicken Sie auf Weiter.
  • Geben Sie auf dem Bildschirm Zusätzliche Informationen die Framework-Version an, die Sie verwenden möchten. In diesem Beispiel wird .NET-Framework 4.8 verwendet.

    Projekt erstellen - .NET-Framework

  • Klicken Sie auf Erstellen, um den Vorgang abzuschließen.

    Das Projekt ist nun erstellt und wir sind fast bereit, die Bibliotheken zu testen. Wir müssen sie jedoch noch installieren und in unser Projekt integrieren. Installieren wir zunächst IronXL.

2. IronXL C# Bibliothek Installation

Sie können die IronXL-Bibliothek mit den folgenden Methoden herunterladen und installieren:

  1. Verwendung von Visual Studio mit NuGet-Paketen

  2. Laden Sie das NuGet-Paket direkt herunter

  3. Manuelle Installation mit der DLL

    Schauen wir uns jede einzelne davon genauer an.

2.1. Verwendung von Visual Studio mit NuGet-Paketen

Visual Studio bietet den NuGet Package Manager, um NuGet-Pakete in Ihren Projekten zu installieren. Sie können über das Projektmenü darauf zugreifen, oder indem Sie mit der rechten Maustaste auf Ihr Projekt im Projektmappen-Explorer klicken.

Select-Manage-NuGet-Package

  • Suchen Sie nun auf der Registerkarte Durchsuchen -> IronXL.Excel -> Installieren

    Suche nach IronXL

  • Und wir sind fertig.

2.2. Direktes Herunterladen des NuGet-Pakets

Dazu können Sie direkt die NuGet-Website besuchen und das Paket herunterladen. Die Schritte sind:

  • Navigieren Sie zuhttps://www.nuget.org/packages/IronXL.Excel
  • Wählen Sie "Paket herunterladen"
  • Doppelklicken Sie auf das heruntergeladene Paket
  • Das Paket wird installiert
  • Laden Sie Ihr Visual Studio-Projekt neu und verwenden Sie es

2.3. Manuelle Installation mit der DLL

Eine andere Möglichkeit, die IronXL C# Bibliothek herunterzuladen und zu installieren, ist die Verwendung der folgenden Schritte, um das IronXL NuGet-Paket über die Entwickler-Eingabeaufforderung zu installieren.

  • Öffnen Sie die Developer-Eingabeaufforderung, die sich normalerweise im Ordner Visual Studio befindet.
  • Geben Sie den folgenden Befehl ein: PM > Install-Package IronXL.Excel
  • Eingabe drücken
  • Dadurch wird das Paket heruntergeladen und installiert
  • Laden Sie Ihr Visual Studio-Projekt neu und verwenden Sie es

2.4. Notwendige Verwendungsrichtlinien hinzufügen

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei Program.cs und dann auf Code anzeigen.

  2. Fügen Sie die folgenden using-Direktiven am Anfang der Codedatei hinzu:
using IronXL;
using IronXL;
Imports IronXL
VB   C#

Alles erledigt! IronXL ist heruntergeladen, installiert und einsatzbereit. Vorher sollten wir jedoch CsvHelper installieren.

3. CSVWriter-Installation

3.1. Verwendung der NuGet-Paketmanager-Konsole

Um mit CSVWriter arbeiten zu können, müssen Sie die CsvHelper C# Bibliothek herunterladen und installieren. Führen Sie dazu die folgenden Schritte aus, um das NuGet-Paket über die Eingabeaufforderung für Entwickler zu installieren.

  • Öffnen Sie die Developer-Eingabeaufforderung, die sich normalerweise im Ordner Visual Studio befindet.
  • Geben Sie den folgenden Befehl ein: PM> Install-Package CsvHelper -Version 27.2.1
  • Eingabe drücken
  • Dadurch wird das Paket heruntergeladen und installiert
  • Laden Sie Ihr Visual Studio-Projekt neu und verwenden Sie es
  • Überprüfen Sie die Details der CsvHelper.CsvWriter-Methode für die Implementierung

3.2. Direkter Download

Download von der NuGet-Website: https://www.nuget.org/packages/CsvHelper/

4. Arbeiten mit CSV-Dateien mit IronXL

Ein durch Komma getrennter Wert (CSV) ist eine durch Komma getrennte Textdatei, in der die Werte durch ein Komma getrennt sind. Jede Zeile der Datei ist ein Datensatz. Diese Dateien für Berechnungen zu manipulieren, kann eine schwierige Aufgabe sein, aber IronXL bietet eine ziemlich gute und einfache Möglichkeit, dies zu erreichen, ohne Microsoft Excel zu verwenden. Konvertieren wir zunächst eine CSV-Datei in eine normale Excel-Datei.

4.1. Konvertierung einer CSV-Datei in das Excel-Format

Das Verfahren ist ziemlich einfach und leicht. In der Regel ist dies mit einer Zeile Code erledigt.

CSV-zu-Excel-Formate:

WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
 
workbook.SaveAs("CsvToExcelConversion.xlsx");
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
 
workbook.SaveAs("CsvToExcelConversion.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
'
workbook.SaveAs("CsvToExcelConversion.xlsx")
VB   C#

4.2. Lesen und Manipulieren konvertierter CSV-Dateien mit IronXL

Die IronXL WorkBook-Klasse stellt ein Excel-Blatt dar. Um eine Excel-Datei mit C# zu öffnen, verwenden wir WorkBook.Load und geben den Pfad der Excel-Datei an (.xlsx). Der folgende einzeilige Code wird verwendet, um die Datei zum Lesen zu öffnen:

//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
'Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
VB   C#

Jedes WorkBook kann mehrere WorkSheet-Objekte enthalten. Diese stellen Arbeitsblätter im Excel-Dokument dar. Wenn die Arbeitsmappe Arbeitsblätter enthält, rufen Sie diese wie folgt nach Namen auf:

//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
'Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
VB   C#

Code zum Lesen der Zellwerte:

// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read from Ranges of cells elegantly.
For Each cell In worksheet ("A2:A10")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
VB   C#

Nach dem Laden und Lesen der Arbeitsmappe und des Arbeitsblatts kann das folgende Codebeispiel verwendet werden, um entweder Änderungen an Formeln vorzunehmen oder auf bestimmte Zellen anzuwenden. Der Code lautet wie folgt:

// Set Formulas
worksheet ["A1"].Formula = "Sum(B8:C12)";
worksheet ["B8"].Formula = "=C9/C11";
worksheet ["G30"].Formula = "Max(C3:C7)";
 
// Force recalculate all formula values in all sheets.  
workbook.EvaluateAll();
// Set Formulas
worksheet ["A1"].Formula = "Sum(B8:C12)";
worksheet ["B8"].Formula = "=C9/C11";
worksheet ["G30"].Formula = "Max(C3:C7)";
 
// Force recalculate all formula values in all sheets.  
workbook.EvaluateAll();
' Set Formulas
worksheet ("A1").Formula = "Sum(B8:C12)"
worksheet ("B8").Formula = "=C9/C11"
worksheet ("G30").Formula = "Max(C3:C7)"
'
' Force recalculate all formula values in all sheets.  
workbook.EvaluateAll()
VB   C#

4.3. Speichern des Excel-Dokuments zurück in die CSV-Datei

Das Schreiben von CSV-Dateien ist mit IronXL ein einfacher Prozess. Der folgende Code speichert einfach die Excel-Datei im CSV-Format mit der Methode SaveAsCsv.

WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");
//Import .xls, .csv, or .tsv file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
//Saved as : SaveAsCSV.Sheet1.csv
WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");
//Import .xls, .csv, or .tsv file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
//Saved as : SaveAsCSV.Sheet1.csv
Dim wb As WorkBook = WorkBook.Load("Normal_Excel_File.xlsx")
'Import .xls, .csv, or .tsv file
wb.SaveAsCsv("SaveAsCSV.csv", ",")
'Saved as : SaveAsCSV.Sheet1.csv
VB   C#

5. Arbeiten mit CSV-Daten mit CSVWriter

Das Schreiben von Daten in eine CSV-Datei ist ein gängiger Vorgang. CSVHelper-Methode CSVWriter mit gelieferten Trennzeichen alle Zeichen und neue Zeile Zeichen können in einem sehr einfachen CSV Writer für C# freigegeben behandelt werden. Hier werden wir uns ansehen, wie man Daten mit CSVWriter schreibt.

5.1. Erstellen einer einfachen Konsolenanwendung

Erstellen Sie einen einfachen CSVWriter mit mitgelieferter Separator-Konsolenanwendung mit Visual Studio. Sobald das Projekt erstellt ist, besteht der nächste Schritt darin, eine Personenklasse zu erstellen:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsLiving { get; set; }
}
public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsLiving { get; set; }
}
Public Class Person
	Public Property Id() As Integer
	Public Property Name() As String
	Public Property IsLiving() As Boolean
End Class
VB   C#

In der Main-Methode erstellen wir nun eine Liste von Person-Objekten, die wir in die CSV-Datei schreiben werden:

var myPersonObjects = new List<Person>()
{
    new Person { Id = 1, IsLiving = true, Name = "John" },
    new Person { Id = 2, IsLiving = true, Name = "Steve" },
    new Person { Id = 3, IsLiving = true, Name = "James" }
};
var myPersonObjects = new List<Person>()
{
    new Person { Id = 1, IsLiving = true, Name = "John" },
    new Person { Id = 2, IsLiving = true, Name = "Steve" },
    new Person { Id = 3, IsLiving = true, Name = "James" }
};
Dim myPersonObjects = New List(Of Person)() From {
	New Person With {
		.Id = 1,
		.IsLiving = True,
		.Name = "John"
	},
	New Person With {
		.Id = 2,
		.IsLiving = True,
		.Name = "Steve"
	},
	New Person With {
		.Id = 3,
		.IsLiving = True,
		.Name = "James"
	}
}
VB   C#

5.2. Schreiben in eine CSV-Datei in C# mit Standardeinstellungen

CsvHelper hat sich als Standardmethode zum Schreiben von CSV in C# unter Verwendung der CSVWriter-Methode durchgesetzt und ist sehr einfach zu verwenden:

using (var writer = new StreamWriter("filePersons.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(myPersonObjects);
}
using (var writer = new StreamWriter("filePersons.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(myPersonObjects);
}
Using writer = New StreamWriter("filePersons.csv")
Using csv = New CsvWriter(writer, CultureInfo.InvariantCulture)
	csv.WriteRecords(myPersonObjects)
End Using
End Using
VB   C#

5.3. Daten anhängen

Wir müssen bedenken, dass jedes Mal, wenn wir unser Programm ausführen, alte CSV-Dateien überschrieben werden. Manchmal möchten wir, dass die Daten am Ende einer Datei angehängt werden, anstatt vorhandene Daten zu überschreiben. CSVWriter bietet keine Methode dafür, da das Öffnen/Schreiben einer Datei nicht in der Verantwortung von CSVWriter mit mitgeliefertem Trennzeichen liegt. Wir können dies erreichen, indem wir einen FileStream verwenden und dann unseren StreamWriter unter Verwendung dieses FileStreams konstruieren. Obwohl dies nicht in den Rahmen dieses Artikels fällt, zeige ich Ihnen, wie man es macht, da es ein wesentlicher Bestandteil jeder Anwendung ist.

var configPersons = new CsvConfiguration(CultureInfo.InvariantCulture)
{
    HasHeaderRecord = false
};
using (var stream = File.Open("filePersons.csv", FileMode.Append))
using (var writer = new StreamWriter(stream))
using (var csv = new CsvWriter(writer, configPersons))
{
    csv.WriteRecords(myPersonObjects);
}
var configPersons = new CsvConfiguration(CultureInfo.InvariantCulture)
{
    HasHeaderRecord = false
};
using (var stream = File.Open("filePersons.csv", FileMode.Append))
using (var writer = new StreamWriter(stream))
using (var csv = new CsvWriter(writer, configPersons))
{
    csv.WriteRecords(myPersonObjects);
}
Dim configPersons = New CsvConfiguration(CultureInfo.InvariantCulture) With {.HasHeaderRecord = False}
Using stream = File.Open("filePersons.csv", FileMode.Append)
Using writer = New StreamWriter(stream)
Using csv = New CsvWriter(writer, configPersons)
	csv.WriteRecords(myPersonObjects)
End Using
End Using
End Using
VB   C#

Das Anhängen an eine bestehende Datei ist jedoch nicht ganz einfach, da sich die Reihenfolge beim Anhängen ändern kann oder neue Eigenschaften hinzugefügt wurden. Wir sollten dies beim Anhängen berücksichtigen.

6. Lizenzvergabe

IronXL ist ein offenes kommerzielles C# Excel-Bibliothek. Es ist kostenlos für die Entwicklung und kann jederzeit für den kommerziellen Einsatz lizenziert werden.Lizenzen sind verfügbar für Einzelprojekte, einzelne Entwickler, Agenturen und globale Unternehmen sowie für SaaS- und OEM-Vertrieb. Alle Lizenzen beinhalten eine 30-tägige Geld-zurück-Garantie, ein Jahr Produktsupport und Updates, Gültigkeit für Entwicklung/Taging/Produktion sowie eine permanente Lizenz (einmaliger Kauf). Das Lite-Paket beginnt mit $749.

CSVWriter mit mitgeliefertem Trennzeichen ist ein Komma-getrenntes Element und für die kommerzielle Nutzung völlig kostenlos.

7. Zusammenfassung und Schlussfolgerung

Zusammenfassung

IronXL ist eine vollständige Bibliothek, die alles bietet, was Sie brauchen, um eine Excel-Datei zu bearbeiten. Es bietet Ihnen die Möglichkeit, verschiedene Formate in XLSX zu konvertieren, und auch von XLSX in andere Formate, wie CSV. Diese Interkonvertierung bietet dem Benutzer die Flexibilität, andere Dateiformate mit Leichtigkeit zu bearbeiten.

Andererseits arbeitet CSVWriter nur mit CSV-Dateiformaten und mit sehr begrenzten Optionen. Die Benutzer können nicht zwischen verschiedenen Dateiformaten wechseln, während dies bei IronXL möglich ist. Alle Codebeispiele sind in den CsvHelper-Dokumentationsdateien zu finden. Dieses Dokument enthält Richtlinien für die Verwendung von CSVWriter in Ihrem Projekt.

Schlussfolgerung

IronXL hat einen klaren Vorteil gegenüber CSVHelper.CSVWriter, da es die Arbeit mit mehreren Formaten unterstützt. Darüber hinaus können Sie Formeln und Stile nach Ihren Wünschen anwenden, während CsvHelper nur das Lesen und Schreiben von CSV-Dateien ermöglicht, und das mit begrenzten Optionen. Außerdem können Sie keine neuen Datensätze an eine bestehende CSV-Datei anhängen, da dies die vorherigen Einträge einfach überschreibt.

< PREVIOUS
Ein Vergleich zwischen IronXL und Spire XLS
NÄCHSTES >
Ein Vergleich zwischen IronXL und CsvHelper

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 1,068,832 Lizenzen anzeigen >