Zum Fußzeileninhalt springen
IRONXL VERWENDEN

C# CSV-Bibliothek: Vollständiges Tutorial mit IronXL

Die Arbeit mit CSV-Dateien in C# erfordert eine Bibliothek, die mehr als nur einfaches Zeilenparsing ermöglicht. Sie benötigen eine zuverlässige Kodierungserkennung, eine korrekte Behandlung von Trennzeichen, eine starke Typisierung und idealerweise die Möglichkeit, Daten zwischen CSV und Excel zu übertragen, ohne zwei separate Abhängigkeiten pflegen zu müssen. IronXL bietet all das in einer einzigen .NET Bibliothek – kein Microsoft Office erforderlich, keine COM-Interoperabilität und keine fehleranfälligen Workarounds. Egal ob Sie flache Datendateien auf einem Server verarbeiten, eine Datenpipeline aufbauen oder Benutzern einen Tabellenkalkulations-Download anbieten, IronXL bietet Ihnen eine einheitliche API für jedes Format.

Wie richtet man eine C#-Tabellenkalkulationsbibliothek ein?

Die Installation von IronXL über NuGet dauert weniger als eine Minute. Öffnen Sie die Paket-Manager-Konsole in Visual Studio und führen Sie den unten stehenden Befehl aus, oder verwenden Sie die .NET Befehlszeilenschnittstelle (CLI) von einem beliebigen Terminal aus:

Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
SHELL

Nach der Installation des Pakets fügen Sie den Namespace zu jeder Datei hinzu, in der Sie mit Tabellendaten arbeiten möchten:

using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

IronXL zielt auf .NET Framework 4.6.2+ und alle modernen .NET Versionen (Core, 5, 6, 7, 8, 9 und 10) ab. Es läuft unter Windows, Linux und macOS und eignet sich daher sowohl für Desktop-Anwendungen als auch für containerisierte Server-Workloads. Im IronXL -Installationshandbuch finden Sie Schritt-für-Schritt-Anweisungen zu Paketquellen und Lizenzaktivierung.

Wie liest man CSV-Dateien in C#?

Das Einlesen einer CSV-Datei mit IronXL folgt dem gleichen Muster wie das Laden einer beliebigen Tabellenkalkulation. Rufen Sie WorkBook.Load mit dem Dateipfad auf, und IronXL leitet das Format aus der Dateiendung ab – keine zusätzliche Konfiguration erforderlich:

// Load a CSV file into a WorkBook
WorkBook workBook = WorkBook.Load("sales_data.csv");

// Access the default worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Read individual cells by Excel-style address
string customerName = workSheet["A2"].StringValue;
decimal orderAmount = workSheet["B2"].DecimalValue;

// Iterate rows, starting at index 1 to skip the header
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    Console.WriteLine($"Customer: {row.Columns[0].Value}, Amount: {row.Columns[1].Value}");
}
// Load a CSV file into a WorkBook
WorkBook workBook = WorkBook.Load("sales_data.csv");

// Access the default worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Read individual cells by Excel-style address
string customerName = workSheet["A2"].StringValue;
decimal orderAmount = workSheet["B2"].DecimalValue;

// Iterate rows, starting at index 1 to skip the header
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    Console.WriteLine($"Customer: {row.Columns[0].Value}, Amount: {row.Columns[1].Value}");
}
$vbLabelText   $csharpLabel

Das Objekt WorkBook stellt das vollständige Tabellenkalkulationsmodell bereit. Sie greifen auf Zellen mit der gewohnten Excel-Neintation wie "A2" zu, und integrierte Konvertierungseigenschaften -- StringValue, DecimalValue, IntValue, DateTimeValue -- übernehmen die Typumwandlung, sodass Sie Zeichenketten nicht manuell analysieren müssen.

Welche Zelladressierungsoptionen stehen zur Verfügung?

Über den Zugriff auf einzelne Zellen hinaus unterstützt IronXL die Bereichsnotation und die Iteration von Zeilen/Spalten. Sie können einen rechteckigen Zellblock mit einem Bereichsausdruck wie workSheet["A2:C10"] adressieren und ihn wie eine flache Sammlung durchlaufen. Dies ist nützlich, wenn Sie einen bekannten Datenblock validieren oder transformieren möchten, ohne verschachtelte Schleifen schreiben zu müssen:

// Access a range and print each value
foreach (var cell in workSheet["A2:C10"])
{
    Console.WriteLine($"{cell.AddressString}: {cell.Value}");
}
// Access a range and print each value
foreach (var cell in workSheet["A2:C10"])
{
    Console.WriteLine($"{cell.AddressString}: {cell.Value}");
}
$vbLabelText   $csharpLabel

Bei dynamischen Zeilenanzahlen spiegelt die workSheet.Rows-Collection automatisch die geladenen Daten wider, sodass Sie keine Zeilenanzahlen fest codieren müssen. Im Tutorial "C# read CSV" finden Sie weitere Muster, darunter Header-Erkennung und Dateien mit Mehrfachkodierung.

Wie ordnet man CSV-Zeilen benutzerdefinierten Objekten zu?

Eine häufige Anforderung ist die Umwandlung tabellarischer CSV-Daten in eine typisierte Sammlung. Sie können die Zeilen durchlaufen und jede einzelne in eine einfache C#-Klasse projizieren:

public record SalesRecord(string Customer, decimal Amount, DateTime OrderDate);

WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;

var records = new List<SalesRecord>();

// Start at row 1 to skip the header row (row 0)
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    records.Add(new SalesRecord(
        Customer: row.Columns[0].StringValue,
        Amount: row.Columns[1].DecimalValue,
        OrderDate: row.Columns[2].DateTimeValue
    ));
}
public record SalesRecord(string Customer, decimal Amount, DateTime OrderDate);

WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;

var records = new List<SalesRecord>();

// Start at row 1 to skip the header row (row 0)
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    records.Add(new SalesRecord(
        Customer: row.Columns[0].StringValue,
        Amount: row.Columns[1].DecimalValue,
        OrderDate: row.Columns[2].DateTimeValue
    ));
}
$vbLabelText   $csharpLabel

Dieser Ansatz trennt die Parsing-Logik sauber von der Geschäftslogik und sorgt dafür, dass jeder Datensatz im gesamten Rest Ihrer Anwendung stark typisiert ist.

So verwenden Sie eine C#-CSV-Bibliothek zum Lesen und Schreiben von Dateien: Abbildung 1 – Ausgabe einer CSV-Datei lesen

Wie schreibt man CSV-Dateien in C#?

Das Erstellen einer CSV-Datei von Grund auf umfasst drei Schritte: Erstellen einer WorkBook, Befüllen einer WorkSheet und Aufrufen einer SaveAsCsv. Der Prozess entspricht dem Erstellen jeder beliebigen Tabellenkalkulation, wodurch die API unabhängig vom Ausgabeformat konsistent bleibt:

// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("inventory");

// Write header row
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";

// Write data rows
workSheet["A2"].Value = "Widget A";
workSheet["B2"].Value = 250;
workSheet["C2"].Value = 9.99;

workSheet["A3"].Value = "Gadget B";
workSheet["B3"].Value = 120;
workSheet["C3"].Value = 24.50;

// Export to CSV
workBook.SaveAsCsv("inventory.csv");
// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("inventory");

// Write header row
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";

// Write data rows
workSheet["A2"].Value = "Widget A";
workSheet["B2"].Value = 250;
workSheet["C2"].Value = 9.99;

workSheet["A3"].Value = "Gadget B";
workSheet["B3"].Value = 120;
workSheet["C3"].Value = 24.50;

// Export to CSV
workBook.SaveAsCsv("inventory.csv");
$vbLabelText   $csharpLabel

SaveAsCsv kümmert sich um die Platzierung von Trennzeichen, das Einschließen von Feldern, die Kommas enthalten, und die Neinrmalisierung von Zeilenumbrüchen. Sie müssen nichts davon manuell verwalten. IronXL erhält die numerischen Datentypen beim Export, sodass nachgelagerte Tools wie Excel oder pandas die Zahlen als Zahlen und nicht als in Anführungszeichen gesetzte Textzeichenfolgen lesen.

Wie exportiert man eine DataTable in das CSV-Format?

Viele Anwendungen rufen Daten aus einer Datenbank in ein DataTable ab. IronXL kann mit einem einzigen Aufruf einen kompletten DataTable in ein Arbeitsblatt einfügen, wodurch Massenexporte unkompliziert werden:

DataTable dataTable = GetProductsFromDatabase();

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("products");

workSheet.InsertDataTable(dataTable, "A1");

workBook.SaveAsCsv("products.csv");
DataTable dataTable = GetProductsFromDatabase();

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("products");

workSheet.InsertDataTable(dataTable, "A1");

workBook.SaveAsCsv("products.csv");
$vbLabelText   $csharpLabel

Die Methode InsertDataTable schreibt Spaltenüberschriften aus dem Schema DataTable und füllt alle Zeilen ab der von Ihnen angegebenen Adresse aus. Bei größeren Datensätzen ist dies wesentlich effizienter als das manuelle Durchlaufen der Zeilen. Informationen zu Optionen wie benutzerdefinierten Trennzeichen und Codierungseinstellungen finden Sie in der Dokumentation zum Export in die CSV-Datei .

So verwenden Sie eine C#-CSV-Bibliothek zum Lesen und Schreiben von Dateien: Abbildung 2 – Neu erstellte CSV-Datei mit IronXL

Wie konvertiert man in C# zwischen CSV und Excel?

Eine der wertvollsten Funktionen von IronXL ist die bidirektionale Konvertierung zwischen CSV- und Excel-Formaten. Die API ist symmetrisch -- Load liest jedes unterstützte Format, und die Save-Methodenfamilie schreibt in Ihr Zielformat:

// Convert CSV to Excel
WorkBook csvWorkBook = WorkBook.Load("data.csv");
csvWorkBook.SaveAs("data.xlsx");

// Convert Excel back to CSV
WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx");
xlsxWorkBook.SaveAsCsv("report.csv");
// Convert CSV to Excel
WorkBook csvWorkBook = WorkBook.Load("data.csv");
csvWorkBook.SaveAs("data.xlsx");

// Convert Excel back to CSV
WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx");
xlsxWorkBook.SaveAsCsv("report.csv");
$vbLabelText   $csharpLabel

Diese Konvertierungen gewährleisten die Datenintegrität. Numerische Werte bleiben numerisch, Datumsfelder behalten ihren Datentyp, und Formelergebnisse werden vor dem Speichern auf ihre berechneten Werte ausgewertet. Wenn Sie eine Excel-Datei mit mehreren Tabellenblättern in das CSV-Format konvertieren, erstellt IronXL automatisch für jedes Tabellenblatt eine separate CSV-Datei:

WorkBook multiSheetWorkBook = WorkBook.Load("quarterly_report.xlsx");

// Produces: quarterly_report.Sheet1.csv, quarterly_report.Sheet2.csv, etc.
multiSheetWorkBook.SaveAsCsv("quarterly_report.csv");
WorkBook multiSheetWorkBook = WorkBook.Load("quarterly_report.xlsx");

// Produces: quarterly_report.Sheet1.csv, quarterly_report.Sheet2.csv, etc.
multiSheetWorkBook.SaveAsCsv("quarterly_report.csv");
$vbLabelText   $csharpLabel

Dieses Verhalten ist besonders nützlich für Reporting-Pipelines, bei denen nachgelagerte Empfänger ein Thema pro Datei erwarten. Das Tutorial zum Schreiben von CSV-Dateien behandelt weitere Optionen, wie z. B. die Angabe des Trennzeichens und die Steuerung der in den Export einbezogenen Tabellenblätter.

So verwenden Sie eine C#-CSV-Bibliothek zum Lesen und Schreiben von Dateien: Abbildung 3 – Mehrseitige Excel-Datei als separate CSV-Dateien gespeichert

So verwenden Sie eine C#-CSV-Bibliothek zum Lesen und Schreiben von Dateien: Abbildung 4 – Originale Excel-Datei im Vergleich zur konvertierten CSV-Datei

Starten Sie jetzt mit IronXL.
green arrow pointer

Warum reichen reine CSV-Bibliotheken für reale Projekte nicht aus?

Viele C#-Entwickler beginnen mit CsvHelper oder demTextFieldParser aus Microsoft.VisualBasic. Beide sind leistungsfähige Werkzeuge für reine CSV-Workflows. Die Lücke entsteht, wenn sich die Anforderungen erweitern: Ein Stakeholder verlangt einen Excel-Download anstelle einer CSV-Datei, die Finanzabteilung benötigt die Beibehaltung der Formeln, oder die Sicherheitsrichtlinien erfordern passwortgeschützte Dateien. An diesem Punkt zwingt Sie eine reine CSV-Bibliothek dazu, eine zweite Abhängigkeit hinzuzufügen und zwei separate Integrationspfade zu pflegen. Eine einheitliche Tabellenkalkulationsbibliothek beseitigt diese Aufteilung von vornherein.

Funktionsvergleich zwischen IronXL und reinen CSV-Bibliotheken
Fähigkeit IronXL CsvHelper TextFieldParser
CSV-Dateien lesen Ja Ja Ja
CSV-Dateien schreiben Ja Ja Nein
XLSX lesen/schreiben Ja Nein Nein
Formelauswertung Ja Nein Nein
Zellengestaltung und Formatierung Ja Nein Nein
Passwortgeschützte Dateien Ja Nein Nein
Büroabhängigkeit erforderlich Nein Nein Nein
Plattformübergreifend (.NET 10) Ja Ja Begrenzt

Welche zusätzlichen Tabellenkalkulationsfunktionen bietet eine einheitliche Bibliothek?

Über die Formatkonvertierung hinaus bietet eine Bibliothek, die sowohl CSV- als auch Excel-Dateien verarbeiten kann, Tabellenkalkulationsfunktionen, die sich bei wachsenden Projekten als nützlich erweisen. Im speziellen IronXL Paket erhalten Sie:

  • Formelauswertung -- Sie können Formeln wie =SUM(B2:B10) in Zellen schreiben und das berechnete Ergebnis auslesen, ohne dass Excel vorhanden sein muss.
  • Zellen- und Bereichsformatierung -- Schriftstärken, Hintergrundfarben, Zahlenformate und Rahmen über die IronXL Styling-API anwenden.
  • Passwortschutz -- Verschlüsselte Arbeitsmappen mit WorkBook.Load("secure.xlsx", "password") öffnen und neue Dateien verschlüsselt speichern.
  • Benannte Bereiche – Definieren und referenzieren Sie benannte Bereiche genau wie in Excel, was die Formelerstellung und Datenvalidierung vereinfacht.
  • Unterstützung großer Dateien -- IronXL verarbeitet Daten in verwaltetem Code, ohne die gesamte Datei auf einmal in den Speicher zu laden. Dadurch bleibt die Speichernutzung auch bei Dateien mit Zehntausenden von Zeilen vorhersehbar.

Auf der IronXL -Funktionsseite finden Sie eine vollständige Liste der unterstützten Operationen.

Wie handhabt IronXL plattformübergreifende Bereitstellungen?

Eine immer wiederkehrende Herausforderung bei Tabellenkalkulationsbibliotheken ist das plattformspezifische Verhalten. Bibliotheken, die auf COM-Interop angewiesen sind, laufen nur unter Windows, und Bibliotheken, die Office-Anwendungen nutzen, erfordern eine Office-Installation. IronXL ist vollständig verwalteter Code ohne native Abhängigkeiten, sodass dieselbe Binärdatei unverändert auf Linux-Containern, macOS-Entwicklungsrechnern und Windows-Servern läuft. Dadurch wird die Bereitstellung auf Azure , AWS, Docker oder jedem .NET 10-Zielsystem unkompliziert.

Für Entwickler, die Datenpipelines mit Tools wie Dapper oder Entity Framework Core erstellen, eignet sich IronXL ideal als Serialisierungsschicht: CSV-Eingabe lesen, mit dem ORM verarbeiten und Ergebnisse als XLSX oder CSV exportieren. Die IronXL -Lizenzseite erläutert die verfügbaren Lizenzstufen für die kommerzielle Nutzung.

So verwenden Sie eine C#-CSV-Bibliothek zum Lesen und Schreiben von Dateien: Abbildung 5 – Vergleichstabelle von IronXL und reinen CSV-Bibliotheken

Was sind Ihre nächsten Schritte?

IronXL bietet Ihnen eine einheitliche API zum Lesen, Schreiben und Konvertieren von CSV- und Excel-Dateien in jeder .NET 10-Anwendung. Die wichtigsten Vorteile liegen auf der Hand: keine Abhängigkeit von Office, plattformübergreifende Unterstützung, starke Typisierung für Zellwerte und ein direkter Weg von reinen CSV-Projekten hin zu vollständiger Tabellenkalkulationsfunktionalität, wann immer sich die Anforderungen ändern.

Wenn Sie bereit sind, tiefer in die Materie einzusteigen, beginnen Sie mit den Themen, die für Ihr aktuelles Projekt am relevantesten sind. Wenn Sie hauptsächlich mit CSV-Importpipelines arbeiten, decken die oben beschriebenen Lese- und Zuordnungsmuster den Großteil der realen Anwendungsfälle ab. Wenn Ihre Ausgabeanforderungen variieren – mal CSV für nachgelagerte Skripte, mal XLSX für Endbenutzer – zeigt der Abschnitt zur Formatkonvertierung, wie Sie beides mit einer einzigen Codebasis bereitstellen können.

Für Teams, die Berichtssysteme erstellen oder Ergebnisse aus Datenbanken exportieren, skaliert der Ansatz InsertDataTable gut und vermeidet den Leistungsaufwand der zeilenweisen Zellenzuweisung. Kombiniert man dies mit Zellformatierungen, lassen sich Berichte erstellen, die Benutzer direkt in Excel öffnen können, ohne sie neu formatieren zu müssen.

Um fortzufahren, befolgen Sie diese Schritte:

  1. Installieren Sie die Bibliothek über NuGet mit Install-Package IronXL oder dotnet add package IronXL.
  2. Folgen Sie der Kurzanleitung im IronXL Leitfaden für Einsteiger, um Ihre erste CSV-Datei zu laden.
  3. Wenn Sie beide Formate im selben Projekt benötigen, können Sie mithilfe des Tutorials "CSV zu Excel" die Formatkonvertierung erkunden .
  4. Informationen zu erweiterten Zelloperationen, Formelunterstützung und Formatierung finden Sie in der API-Referenz unter IronXL Objektreferenz .
  5. Starten Sie eine kostenlose Testphase auf der IronXL Testlizenzseite – keine Kreditkarte erforderlich, inklusive technischem Support.

Wenn Sie Optionen zusammen mit anderen Iron Software Tools evaluieren, umfasst die IronSoftware-Produktpalette die PDF-Generierung mit IronPDF , Barcode-Lesen, OCR und mehr – alle teilen sich das gleiche Lizenzmodell und den gleichen Supportkanal.

Häufig gestellte Fragen

Was ist IronXL und wie hilft es bei CSV-Dateien in C#?

IronXL ist eine leistungsstarke C#-Bibliothek, die Entwicklern ermöglicht, CSV-Dateien nahtlos zu lesen, zu schreiben und zu konvertieren. Sie bietet erweiterte Unterstützung für Excel-Arbeitsmappen und gewährleistet eine hohe Leistung und konsistente Handhabung von Zeilen, Spalten und Datentypen.

Warum sollte ich IronXL statt kostenloser Bibliotheken wie CsvHelper verwenden?

Während CsvHelper für grundlegende CSV-Operationen großartig ist, überzeugt IronXL mit Funktionen wie der Unterstützung von Excel-Arbeitsmappen, verbesserter Leistung und robuster Datentypen-Verarbeitung und eignet sich daher für komplexere Tabellenkalkulationsabläufe.

Kann IronXL sowohl CSV- als auch Excel-Formate handhaben?

Ja, IronXL ist darauf ausgelegt, sowohl CSV- als auch Excel-Formate effizient zu verwalten und eine einfache Konvertierung zwischen beiden zu ermöglichen.

Unterstützt IronXL eine leistungsstarke Datenverarbeitung?

IronXL ist für hohe Leistung ausgelegt und gewährleistet reibungslose Datenimport- und exportprozesse mit optimaler Geschwindigkeit und Effizienz.

Ist es möglich, IronXL in bestehende Tabellenkalkulationsabläufe zu integrieren?

Absolut, IronXL integriert sich nahtlos in bestehende Tabellenkalkulationsabläufe und verbessert die Fähigkeit, Daten über CSV- und Excel-Formate hinweg zu verwalten.

Was macht IronXL für komplexe CSV-Dateioperationen geeignet?

IronXL bietet robuste Funktionen wie die konsistente Handhabung von Zeilen, Spalten und Datentypen und ist ideal für komplexe CSV-Dateioperationen, die mehr als eine grundlegende Verarbeitung erfordern.

Kann ich IronXL verwenden, um CSV-Dateien in Excel zu konvertieren?

Ja, eine der Hauptfunktionen von IronXL ist die Möglichkeit, CSV-Dateien in das Excel-Format und umgekehrt zu konvertieren und so die Datenverwaltungsprozesse zu rationalisieren.

Wie gewährleistet IronXL eine zuverlässige Verarbeitung von CSV-Dateien?

IronXL gewährleistet eine zuverlässige Verarbeitung von CSV-Dateien durch seine fortschrittlichen Funktionen, die die Unterstützung komplexer Datentypen und die Integration der Excel-Funktionalitäten umfassen.

Was sind die Vorteile der Verwendung von IronXL für den Datenimport/-export?

IronXL bietet reibungslose Datenimport- und exportprozesse, spart Entwicklern Zeit und Aufwand und gewährleistet gleichzeitig die Datenintegrität und -genauigkeit über verschiedene Formate hinweg.

Ist IronXL einfach zu bedienen für Entwickler, die neu in CSV-Operationen in C# sind?

Ja, IronXL ist mit benutzerfreundlichen Funktionen und einfachen Codebeispielen gestaltet, wodurch es für Entwickler, die neu in CSV-Operationen in C# sind, zugänglich und einfach zu verwenden ist.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me