Zum Fußzeileninhalt springen
IRONXL VERWENDEN

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 addresses these challenges by combining robust CSV writing with comprehensive Excel functionality in a single, handling multiple columns with ease in a single,dependency-free library that follows 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:

Install-Package IronXL.Excel

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", ",");
    }
}
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", ",");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieses 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

Wie man CSV-Dateien mit Kommas in C# liest: Abbildung 1 - Beispielausgabe von CSV mit IronXL

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
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.
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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 sehen Sie hier die aus unserer mehrschichtigen Excel-Datei generierten CSV-Dateien:

Wie man CSV-Dateien mit Kommas in C# liest: Abbildung 2 - CSV-Dateien

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

Wie man CSV-Dateien mit Kommas in C# liest: Abbildung 3 - Beispielausgabe

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", ";");
// 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", ";");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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:

Wie man CSV-Dateien mit Kommas in C# liest: Abbildung 4 - Export von DataTable zu CSV-Ausgabe

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);
}
using (var writer = new StreamWriter("employees.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(employees);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronXL-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", ",");
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", ",");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Merkmal

CsvHelper

IronXL

Grundlegendes CSV-Schreiben

Excel-zu-CSV-Konvertierung

Formelberechnung

Behandlung mehrerer Arbeitsblätter

Erhalt von Datentypen

Manuell

Automatisch

Unterstützung von Excel-Formaten

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, Kommas und Zeilenumbrüche
  • Verarbeitung großer Dateien: Verwenden Sie Tabellenbereichte, um Daten in Stücken zu verarbeiten,
  • Kodierungsprobleme: Geben Sie UTF-8-Kodierung für internationale Zeichen an
  • Fehlende Datentypen: IronXL erhält numerische und Datumsformate standardmäßig

For detailed troubleshooting, visit IronXL's CSV documentation, API reference, and support resources.

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 $liteLicense.

Häufig gestellte Fragen

Warum benötigen .NET-Entwickler eine bessere CSV-Lösung?

.NET-Entwickler stehen oft vor Herausforderungen beim Umgang mit CSV-Dateien, die eingebettete Kommas oder Sonderzeichen enthalten. IronXL bietet erweiterte Funktionen, um diese Komplexitäten mühelos zu bewältigen und die Genauigkeit und Effizienz der Datenanalyse zu verbessern.

Wie geht IronXL mit zitierten Feldern in CSV-Dateien um?

IronXL ist so konzipiert, dass es CSV-Dateien mit zitierten Feldern genau parsen kann, und stellt sicher, dass Daten, die Kommas oder andere Sonderzeichen enthalten, korrekt interpretiert und fehlerfrei verarbeitet werden.

Was sind die Vorteile der Verwendung von IronXL für CSV-Parsing in C#?

IronXL bietet robuste Funktionen zum Parsen von CSV-Dateien, einschließlich der Unterstützung von Sonderzeichen, zitierten Feldern und großen Datensätzen. Dies erhöht die Zuverlässigkeit und reduziert die Zeit, die Entwickler mit der Fehlerbehebung bei CSV-bezogenen Problemen verbringen.

Kann IronXL CSV-Dateien mit Sonderzeichen handhaben?

Ja, IronXL kann CSV-Dateien mit verschiedenen Sonderzeichen verarbeiten und sicherstellen, dass alle Daten ohne Parsing-Fehler oder Datenverlust genau gelesen und verarbeitet werden.

Was unterscheidet IronXL von anderen CSV-Parsing-Bibliotheken?

IronXL zeichnet sich dadurch aus, dass es komplexe CSV-Szenarien wie eingebettete Kommas und zitierte Felder mühelos handhaben kann. Seine benutzerfreundliche API und umfassende Funktionalität machen es zur bevorzugten Wahl für Entwickler, die mit CSV-Daten in C# arbeiten.

Ist es möglich, große CSV-Dateien mit IronXL zu verarbeiten?

IronXL ist für die Leistung optimiert und kann große CSV-Dateien effizient verarbeiten, was es für Anwendungen geeignet macht, die umfangreiche Datensätze handhaben.

Wie verbessert IronXL die Zuverlässigkeit der CSV-Datenverarbeitung?

IronXL verbessert die Zuverlässigkeit, indem es CSV-Dateien mit eingebetteten Kommas und Sonderzeichen genau handhabt, wodurch die Wahrscheinlichkeit von Fehlern während der Datenanalyse verringert und die Datenintegrität sichergestellt wird.

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