
Ein Vergleich zwischen IronXL und CsvWriter
Das Arbeiten mit CSV-Dateien kann eine anspruchsvolle Aufgabe sein. Heutzutage gibt es jedoch viele Bibliotheken, die Entwicklern bei dieser Aufgabe helfen, ohne dass Microsoft Excel installiert sein muss.
In diesem Artikel werden wir diskutieren und vergleichen, wie man mit Microsoft Excel-Dokumenten programmatisch in C# .NET-Technologien arbeitet, entweder im CSV-Format oder im Standard-Excel-Format, unter Verwendung zweier der beliebtesten Bibliotheken, IronXL und CSVWriter.
Schauen wir uns zunächst 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 Vielzahl von Tabellenformaten. Es erfordert nicht, dass Microsoft Excel installiert ist, noch hängt es von Interop ab.
IronXL ist eine intuitive C#-API, die es ermöglicht, Excel-Tabellenkalkulationsdateien 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-Feature-Set
- Laden, lesen und bearbeiten von Daten — aus XLS/XLSX/CSV/TSV
- Speichern und Exportieren — nach XLS/XLSX/CSV/TSV/JSON
- Bereiche — einfach zu verwendende WorkSheet ["A1:B10"] Syntax. Kombinieren und Erstellen von Bereichen intuitiv.
- Sortieren — Bereiche, Spalten und Zeilen sortieren.
- Styling — Zellen-Visualstile, Schriftart, Größe, Hintergrundmuster, Rahmen, Ausrichtung und Zahlenformate.
CSVWriter
Eine .NET-Bibliothek zum Schreiben von CSV-Dateien. Extrem schnell, flexibel und einfach zu bedienen. Unterstützt das Schreiben benutzerdefinierter Klassenobjekte.
CsvWriter-Funktionen
- Schnell: kompiliert 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<t>()undWriteRecords(records) - Hoch konfigurierbar
- Linux-Modus
- Geringer Speicherverbrauch
1. Erstellen Sie eine Konsolenanwendung
Verwenden Sie die folgenden Schritte, 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" C# in der Sprachliste, Windows aus der Plattformen Liste und Konsole aus der "Projekttypen" Liste.
- Wählen Sie aus den angezeigten Projektvorlagen Konsolen-App (.NET Framework).

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 verwenden wir .NET Framework 4.8.

Projekt erstellen - .NET Framework
- Klicken Sie auf Erstellen, um den Vorgang abzuschließen.
Das Projekt ist jetzt erstellt und wir sind fast bereit, die Bibliotheken zu testen. Wir müssen sie jedoch noch in unser Projekt installieren und integrieren. Lassen Sie uns zunächst IronXL installieren.
2. IronXL C# Bibliothekeninstallation
Sie können die IronXL-Bibliothek mit den folgenden Methoden herunterladen und installieren:
- Verwendung von Visual Studio mit NuGet-Paketen
- Herunterladen des NuGet-Pakets direkt
- Manuelle Installation mit der DLL
Schauen wir uns jede genauer an.
2.1. Verwenden von Visual Studio mit NuGet-Paketen
Visual Studio bietet den NuGet-Paket-Manager, um NuGet-Pakete in Ihren Projekten zu installieren. Sie können darauf über das Projektmenü oder durch Rechtsklick auf Ihr Projekt im Solution Explorer zugreifen.

Select-Manage-NuGet-Paket
- Suchen Sie jetzt über den Such-Tab -> nach IronXL.Excel -> Installieren

Suchen Sie nach IronXL
- Und wir sind fertig.
2.2. Direktes Herunterladen des NuGet-Pakets
Dies kann durch direkten Besuch der NuGet-Seite und Herunterladen des Pakets erfolgen. Die Schritte sind:
- Navigate to https://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 beginnen Sie es zu verwenden
2.3. Manuelle Installation mit der DLL
Eine andere Möglichkeit, die IronXL C# Bibliothek herunterzuladen und zu installieren, besteht darin, die folgenden Schritte zu nutzen, um das IronXLNuGet-Paket über den Entwickler-Befehlszeileninterpreter zu installieren.
- Öffnen Sie die Entwickler-Eingabeaufforderung — normalerweise im Visual Studio-Ordner zu finden.
- Geben Sie den folgenden Befehl ein:
- Eingabetaste drücken
- Dadurch wird das Paket heruntergeladen und installiert
- Laden Sie Ihr Visual Studio-Projekt neu und beginnen Sie es zu verwenden
2.4. Notwendige 'using'-Anweisungen hinzufügen
- Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Program.cs und wählen Sie Code anzeigen.
- Fügen Sie die folgenden 'using'-Anweisungen oben in der Datei ein:
using IronXL;Imports IronXLFertig! IronXL ist heruntergeladen, installiert und einsatzbereit. Wir sollten jedoch vorher CsvHelper installieren.
3. CSVWriter-Installation
3.1. Verwendung der NuGet-Paketmanager-Konsole
Um mit CSVWriter zu arbeiten, müssen Sie die CsvHelper C#-Bibliothek herunterladen und installieren. Dazu verwenden Sie die folgenden Schritte, um das NuGet-Paket über den Entwickler-Befehlszeileninterpreter zu installieren.
- Öffnen Sie die Entwickler-Eingabeaufforderung — normalerweise im Visual Studio-Ordner zu finden.
- Geben Sie den folgenden Befehl ein:
- Eingabetaste drücken
- Dadurch wird das Paket heruntergeladen und installiert
- Laden Sie Ihr Visual Studio-Projekt neu und beginnen Sie es zu verwenden
- Überprüfen Sie die CsvHelper.CsvWriter-Methode im Detail für die Implementierung.
3.2. Direkter Download
Download von der NuGet-Website: https://www.nuget.org/packages/CsvHelper/
4. Arbeiten mit CSV-Dateien unter Verwendung von IronXL
Eine durch Kommas getrennte Werte (CSV)-Datei ist eine Textdatei mit Trennzeichen, die ein Komma verwendet, um Werte zu trennen. Jede Zeile der Datei ist ein Datensatz. Das Bearbeiten dieser Dateien für Berechnungen kann eine herausfordernde Aufgabe sein, aber IronXL bietet eine ziemlich gute und einfache Option, um dies zu erreichen, und zwar ohne die Verwendung von Microsoft Excel. Lassen Sie uns zuerst eine CSV-Datei in eine normale Excel-Datei konvertieren.
4.1. Konvertieren einer CSV-Datei in Excel-Format
Der Prozess ist ziemlich einfach und unkompliziert. Es wird in der Regel mit einer einzigen Codezeile erledigt.
CSV in Excel-Formate:
// Load the CSV file and specify the format and delimiter
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Get the default worksheet
WorkSheet ws = workbook.DefaultWorkSheet;
// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");' Load the CSV file and specify the format and delimiter
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
' Get the default worksheet
Dim ws As WorkSheet = workbook.DefaultWorkSheet
' Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx")4.2. Lesen und Manipulieren konvertierter CSV-Dateien unter Verwendung von 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 (.xlsx) an. Der folgende Einzeiler wird verwendet, um die Datei zum Lesen zu öffnen:
// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");' Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")Jede Arbeitsmappe kann mehrere Arbeitsblattobjekte enthalten. Diese stellen Arbeitsblätter im Excel-Dokument dar. Wenn die Arbeitsmappe Arbeitsblätter enthält, greifen Sie wie folgt auf sie zu:
// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");' Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")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.
For Each cell In worksheet("A2:A10")
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cellNach dem Laden und Lesen des Arbeits- und Arbeitsblattes kann das folgende Codebeispiel verwendet werden, um entweder Änderungen an Formeln vorzunehmen oder Formeln auf bestimmte Zellen anzuwenden. Der Code sieht wie folgt aus:
// 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()4.3. Speichern des Excel-Dokuments zurück in CSV-Datei
Das Schreiben von CSV-Dateien ist ein einfacher Prozess mit IronXL. Der folgende Code speichert die Excel-Datei einfach im CSV-Format, indem die SaveAsCsv-Methode verwendet wird.
// Load the workbook
WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");
// Save as .csv file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
// Saved as : SaveAsCSV.Sheet1.csv' Load the workbook
Dim wb As WorkBook = WorkBook.Load("Normal_Excel_File.xlsx")
' Save as .csv file
wb.SaveAsCsv("SaveAsCSV.csv", ",")
' Saved as : SaveAsCSV.Sheet1.csv5. Arbeit mit CSV-Daten unter Verwendung von CSVWriter
Das Schreiben von Daten in eine CSV-Datei ist ein gängiger Vorgang. Die CSVHelper-Methode CSVWriter mit dem bereitgestellten Trennzeichen behandelt alle Zeichen und Zeilenumbruchzeichen in einem sehr einfachen CSV-Writer, der für C# veröffentlicht wurde. Hier werden wir uns ansehen, wie man Daten mit CSVWriter schreibt.
5.1. Erstellen einer einfachen Konsolenanwendung
Erstellen Sie eine einfache CSVWriter-Konsole mit bereitgestelltem Trennzeichen unter Verwendung von Visual Studio. Sobald das Projekt erstellt ist, besteht der nächste Schritt darin, eine Person-Klasse zu erstellen:
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 ClassInnerhalb 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" }
};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"
}
}5.2. Schreiben in eine CSV-Datei in C# mit Standardeinstellungen
CsvHelper hat sich als Standardmethode zum Schreiben von CSV in C# mit der CSVWriter-Methode etabliert, und es ist sehr einfach zu verwenden:
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 Using5.3. Anhängen von Daten
Wir müssen bedenken, dass bei jedem Ausführen unseres Programms alte CSV-Dateien überschrieben werden. Manchmal möchten wir, dass die Daten am Ende einer Datei hinzugefügt werden, anstatt bestehende Daten zu überschreiben. CSVWriter bietet keine Methode, dies zu tun, da das Öffnen/Schreiben einer Datei nicht die Aufgabe von CSVWriter mit bereitgestelltem Trennzeichen ist. Wir können dies erreichen, indem wir ein FileStream verwenden und dann unseren StreamWriter mit diesem FileStream konstruieren. Obwohl dies nicht in den Geltungsbereich dieses Artikels fällt, werde ich Ihnen zeigen, wie Sie dies tun, da es ein integraler 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);
}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 UsingDas Anfügen an eine bestehende Datei ist jedoch schwierig, da die Reihenfolge beim Anhängen geändert werden könnte oder neue Eigenschaften hinzugefügt werden könnten. Wir sollten sicherstellen, dass wir dies beim Anhängen berücksichtigen.
6. Lizenzierung
IronXL ist eine offen kommerzielle 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 den Einsatz in Einzelprojekten, Einzelentwicklern, Agenturen und globalen Unternehmen sowie SaaS und OEM-Weiterverbreitung. Alle Lizenzen umfassen eine 30-Tage-Geld-zurück-Garantie, ein Jahr Produktsupport und -aktualisierungen, Gültigkeit für Entwicklung, Test- und Produktionsumgebungen und auch eine Dauerlizenz (einmaliger Kauf). Das Lite-Paket beginnt bei $999.
CSVWriter mit bereitgestelltem Trennzeichen ist ein kommagetrenntes Element und komplett kostenlos für den kommerziell-freundlichen Einsatz.
7. Zusammenfassung und Schlussfolgerung
Zusammenfassung
IronXL ist eine umfassende Bibliothek, die alles bietet, was man braucht, um eine Excel-Datei zu manipulieren. Es bietet die Möglichkeit, verschiedene Formate in XLSX umzuwandeln und auch von XLSX in andere Formate, wie CSV. Diese Umwandlung bietet den Nutzern die Flexibilität, andere Dateiformate mit Leichtigkeit zu manipulieren.
Auf der anderen Seite arbeitet CSVWriter nur mit CSV-Dateiformaten und sehr begrenzten Optionen. Nutzer können nicht zwischen verschiedenen Dateiformaten wechseln, während sie mit IronXL können. Alle Beispielcodes finden Sie in den CsvHelper-Dokumentationsdateien. Dieses Dokument bietet Richtlinien, wie CSVWriter in Ihrem Projekt verwendet werden kann.
Abschluss
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 Ihrem Wunsch anwenden, während CsvHelper nur das Lesen und Schreiben von CSV-Dateien erlaubt, und das mit eingeschränkten Optionen. Außerdem können Sie keine neuen Datensätze in eine bestehende CSV-Datei anhängen, da dabei nur frühere Einträge überschrieben werden.

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.
Verwandte Artikel



