
Wie man CSV-Dateien mit Kommas in C# liest
Warum brauchen .NET-Entwickler eine bessere CSV-Lösung?
CSV-Dateien ermöglichen den Datenaustausch in unzähligen .NET-Anwendungen. Von Finanzberichten bis hin zu Inventarsystemen haben Sie die Freiheit, CSV-Dateien mit nur wenigen Codezeilen programmgesteuert zu erstellen. Während Bibliotheken wie CsvHelper grundlegende CSV-Operationen abdecken, stehen moderne Entwickler vor komplexen Szenarien: Konvertierung von Excel-Arbeitsmappen mit Formeln, Erhalt der Datentypen beim Export und Umgang mit unternehmensgerechten Tabellenkalkulations-Workflows. IronXL bewältigt diese Herausforderungen, indem es robustes CSV-Schreiben mit umfassender Excel-Funktionalität in einer einzigen, abfragefreien Bibliothek kombiniert, die mehrere Spalten mühelos in einer einzigen, abfragefreien Bibliothek behandelt, die den RFC 4180-Standards folgt.
Dies macht es ideal für Entwickler, die einen benutzerdefinierten .NET-CSV-Schreiber oder .NET-CSV-Parser erstellen, der mehrere Spalten unterstützt, zeilenbezogene Funktionen bietet, die nur die verarbeitete Zeile betreffen, und automatisch erkannte Trennzeichen verwendet.
Erste Schritte mit IronXL
Die Installation von IronXL über den NuGet-Paketmanager dauert nur Sekunden:
Sobald installiert, fügen Sie den Namespace von IronXL hinzu, um mit dem Schreiben von CSV-Dateien zu beginnen und effizient mit getrennten Werten zu arbeiten:
using IronXL;
class Program
{
static void Main(string[] args)
{
// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("data");
// Add headers
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";
// Add data
workSheet["A2"].Value = "Widget";
workSheet["B2"].Value = 100;
workSheet["C2"].Value = 19.99;
// Save as CSV with comma delimiter
workBook.SaveAsCsv("inventory.csv", ",");
}
}Imports IronXL
Class Program
Shared Sub Main(args As String())
' Create a new workbook and worksheet
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("data")
' Add headers
workSheet("A1").Value = "Product"
workSheet("B1").Value = "Quantity"
workSheet("C1").Value = "Price"
' Add data
workSheet("A2").Value = "Widget"
workSheet("B2").Value = 100
workSheet("C2").Value = 19.99
' Save as CSV with comma delimiter
workBook.SaveAsCsv("inventory.csv", ",")
End Sub
End ClassDieses einfache Konsolentestprogramm zeigt, wie man CSV-Inhalte direkt aus Ihrem C#-Code schreibt und ein Workbook-Objekt erstellt, das unsere Daten enthält. Die SaveAsCsv-Methode verwendet als Standardtrennzeichen (Komma), ermöglicht es Ihnen jedoch, sep für verschiedene Gebiete optional zu definieren; dies ist besonders hilfreich beim Umgang mit einem Dezimaltrennzeichen oder einem alternativen Zeichentrennzeichen. Intern verwaltet sep die Zuweisung von Arrays für den Ausgabepuffer. Der zuvor erwähnte sep-Parameter ermöglicht es Ihnen, dieses Zeichen zu definieren.
Wir haben auch gezeigt, wie man einen statischen Einstiegspunkt bereitstellt und wie man das Speichermanagement effizient mit einem statisch definierten Pool von Ressourcen verwaltet, was eine hohe Leistung über mehrere Zeilen hinweg ermöglicht.
Erweiterte Techniken zur Erstellung von CSV-Dateien

Erweiterte Techniken zur Erstellung von CSV-Dateien
Konvertierung von Excel-Arbeitsmappen in CSV
IronXL ist hervorragend bei der Konvertierung vorhandener Excel-Dateien in CSV, der Evaluierung von Formeln und dem Erhalt der Datenintegrität. Dies ist wesentlich beim Schreiben von CSV-Dateien, die sowohl Kopfzeilen als auch dynamisch generierte Daten enthalten.
// Load an Excel file with formulas and formatting
WorkBook workBook = WorkBook.Load("financial_report.xlsx");
// IronXL evaluates formulas before export
workBook.EvaluateAll();
// Export to CSV - each worksheet creates a separate CSV file
workBook.SaveAsCsv("report.csv", ",");
// Creates: report.Sheet1.csv, report.Sheet2.csv, etc.' Load an Excel file with formulas and formatting
Dim workBook As WorkBook = WorkBook.Load("financial_report.xlsx")
' IronXL evaluates formulas before export
workBook.EvaluateAll()
' Export to CSV - each worksheet creates a separate CSV file
workBook.SaveAsCsv("report.csv", ",")
' Creates: report.Sheet1.csv, report.Sheet2.csv, etc.Beim Konvertieren von Arbeitsmappen mit mehreren Arbeitsblättern generiert IronXL automatisch einzelne CSV-Dateien für jedes Arbeitsblatt. Formelberechnungen werden vor dem Export ausgeführt, um genaue Daten im endgültigen CSV-Output zu gewährleisten. Aber dies ist nicht die einzige Funktion. Der standardmäßig automatisch erkannte Trenner sorgt für Kompatibilität über Regionen hinweg, und mehrere Zeilen oder Spalten werden nahtlos verarbeitet.
Sie können auch einen nullable sep für dynamische Umgebungen verwenden, in denen die standardmäßig unterstützten Trenner variieren.
Ausgabe
Zuerst können Sie hier die aus unserer mehrseitigen Excel-Datei generierten CSV-Dateien sehen:

Und dies ist ein Beispielvergleich eines der Excel-Blätter gegenüber der entsprechenden CSV-Datei:

Export von DataTable nach CSV
Für datenbankgesteuerte Anwendungen vereinfacht IronXL den Export von DataTable. Wir setzen die var auf Datarow anstelle einer typischen ref var v, um klarer zu sein.
// Assume dataTable contains query results
DataTable dataTable = GetSalesData();
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("sales");
// Import DataTable directly
var row = 1;
foreach (var dataRow in dataTable.Rows)
{
for (var col = 0; col < dataTable.Columns.Count; col++)
{
workSheet.SetCellValue(row, col, dataRow[col].ToString());
}
row++;
}
// Export with custom delimiter if needed
workBook.SaveAsCsv("sales_data.csv", ";");Imports System.Data
' Assume dataTable contains query results
Dim dataTable As DataTable = GetSalesData()
Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("sales")
' Import DataTable directly
Dim row As Integer = 1
For Each dataRow As DataRow In dataTable.Rows
For col As Integer = 0 To dataTable.Columns.Count - 1
workSheet.SetCellValue(row, col, dataRow(col).ToString())
Next
row += 1
Next
' Export with custom delimiter if needed
workBook.SaveAsCsv("sales_data.csv", ";")Beim Import wird jedes set horizontaler Daten aus der Sammlung dataTable.Rows zu einer neuen Zeile im Arbeitsblatt. IronXL bewahrt Datentypen während der Umwandlung, das heißt, Zahlen bleiben numerisch, Daten behalten ihre Formatierung und Text bearbeitet Sonderzeichen korrekt, ohne zusätzliche Konfiguration.
Ausgabe
Hier können Sie neben der CSV-Ausgabedatei unsere Mock-Datenquelle sehen:

IronXL vs CsvHelper: Vergleich für das Schreiben von CSV-Dateien
Betrachten Sie dieses Szenario des Mitarbeiterdatensatzexports, das Workflows zum Parsen und Schreiben von CSV demonstriert.
CsvHelper-Implementierung:
using (var writer = new StreamWriter("employees.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteRecords(employees);
}Imports System.Globalization
Imports System.IO
Imports CsvHelper
Using writer As New StreamWriter("employees.csv")
Using csv As New CsvWriter(writer, CultureInfo.InvariantCulture)
csv.WriteRecords(employees)
End Using
End UsingIronXL-Implementierung:
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("employees");
// Add data with automatic type handling
int rowIndex = 1;
foreach (var emp in employees)
{
workSheet[$"A{rowIndex}"].Value = emp.Name;
workSheet[$"B{rowIndex}"].Value = emp.Salary;
workSheet[$"C{rowIndex}"].Value = emp.StartDate;
rowIndex++;
}
workBook.SaveAsCsv("employees.csv", ",");Dim workBook As WorkBook = WorkBook.Create()
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("employees")
' Add data with automatic type handling
Dim rowIndex As Integer = 1
For Each emp In employees
workSheet($"A{rowIndex}").Value = emp.Name
workSheet($"B{rowIndex}").Value = emp.Salary
workSheet($"C{rowIndex}").Value = emp.StartDate
rowIndex += 1
Next
workBook.SaveAsCsv("employees.csv", ",")Merkmal | CsvHelper | IronXL |
|---|---|---|
Grundlegendes CSV-Schreiben | ✓ | ✓ |
Excel zu CSV Konvertierung | ✗ | ✓ |
Formel-Bewertung | ✗ | ✓ |
Handhabung mehrerer Blätter | ✗ | ✓ |
Erhaltung des Datentyps | Handbuch | Automatisch |
Unterstützung des Excel-Formats | ✗ | XLSX, XLS, XLSM |
Kein MS Office erforderlich | ✓ | ✓ |
Während CsvHelper effizient einfache Operationen zum Schreiben von Spalten verwaltet, bietet IronXL die Flexibilität, mit mehreren Zeilen, interpolierten Zeichenfolgen und dynamischen Code-Generierungsszenarien zu arbeiten und sogar Low-Level-Optimierungen mit Konstrukten wie ref struct link zu ermöglichen.
Entwickler können Zeilen mit bestimmten Kriterien auflisten, standardmäßig automatisch erkannte Trenner verwalten oder sogar mit einfachen Konsolenprogrammen testen, die zeilenbezogene Funktionen bereitstellen und nur den Schlüssel jedes Eintrags für das Debugging exponieren.
Unternehmensfunktionen und Best Practices
Die SaveAsCsv-Methode von IronXL umfasst unternehmensgerechte Funktionen:
- Benutzerdefinierte Trennzeichen: Unterstützung für Komma, Semikolon, Tabulator oder jedes Zeichen (das Standardtrennzeichen kann mit separator sep überschrieben werden)
- Kodierungsoptionen: UTF-8, UTF-16 und benutzerdefinierte Kodierungen
- Formelbewertung: Berechnet Excel-Formeln vor dem Export
- Plattformübergreifende Unterstützung: Funktioniert unter Windows, Linux und macOS
Entwickler können außerdem Erweiterungsmethoden anwenden, um auf mehrere Spalten für effiziente Verarbeitung zuzugreifen oder CSV-Zeilen zu schreiben, die mehrere Zeilen umfassen, wenn Textumbrüche erforderlich sind.
Häufige Probleme und Lösungen
Beim Arbeiten mit CSV-Exports stoßen Entwickler häufig auf diese Herausforderungen:
- Sonderzeichen in Daten: IronXL maskiert automatisch Anführungszeichen, Kommata und Zeilenumbrüche
- Größenbearbeitung von großen Dateien: Verwenden Sie Arbeitsblattbereiche, um Daten in Blöcken zu verarbeiten,
- Kodierungsprobleme: Geben Sie UTF-8-Kodierung für internationale Zeichen an
- Fehlende Datentypen: IronXL behält numerische und Datumsformate standardmäßig bei.
Für detaillierte Fehlerbehebung, besuchen Sie die CSV-Dokumentation von IronXL, API-Referenz und Support-Ressourcen.
Beginnen Sie heute mit dem Erstellen Ihres CSV-Schreibers
IronXL verwandelt das Schreiben von CSV von einer Parserherausforderung in eine unkomplizierte Operation. Durch die Kombination der CSV-Funktionalität mit der Unterstützung von Excel-Arbeitsmappen, der Bewertung von Formeln und der automatischen Typbehandlung beseitigt IronXL die Komplexität der Verwaltung mehrerer Bibliotheken oder manueller Datenkonvertierungen.
Bereit, Ihre CSV-Workflows zu vereinfachen? Starten Sie Ihre kostenlose Testversion ab $999.

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



