Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Lesen von CSV-Dateien in C# mit IronXL

Mit IronXL wird das Lesen von CSV-Dateien in C# .NET trivial – ein einziger Methodenaufruf lädt kommagetrennte Daten in eine strukturierte Arbeitsmappe, ohne dass benutzerdefinierter Parsing-Code erforderlich ist. Dieser Leitfaden führt Sie durch alle notwendigen Techniken: grundlegendes Laden, benutzerdefinierte Trennzeichen, DataTable-Konvertierung, Zugriff auf Zellenebene, Fehlerbehandlung und Export in das Excel-Format.

Was ist der einfachste Weg, CSV-Dateien in .NET zu lesen?

Der einfachste Ansatz verwendet WorkBook.LoadCSV , um CSV-Daten direkt in eine Arbeitsmappenstruktur zu importieren. Diese Methode übernimmt das Parsen, die Trennzeichenerkennung und die Datenorganisation automatisch – es ist nicht nötig, ein StreamReader zu erstellen oder jede Zeichenkettenzeile manuell zu verarbeiten.

Installieren Sie IronXL über die NuGet-Paketmanager-Konsole in Visual Studio. Öffnen Sie Ihr .NET-Projekt und führen Sie es aus:

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

CSV lesen in .NET: Der einfachste C#-Ansatz mit IronXL: Bild 1 - Installation

using IronXL;

// Load CSV file into a workbook with one method call
WorkBook workbook = WorkBook.LoadCSV("sales_data.csv", fileFormat: ExcelFileFormat.XLSX, listDelimiter: ",");
// Access the default worksheet containing CSV data
WorkSheet sheet = workbook.DefaultWorkSheet;
// Display all rows and CSV columns
foreach (var row in sheet.Rows)
{
    foreach (var cell in row)
    {
        Console.Write(cell.Value + "\t");
    }
    Console.WriteLine();
}
using IronXL;

// Load CSV file into a workbook with one method call
WorkBook workbook = WorkBook.LoadCSV("sales_data.csv", fileFormat: ExcelFileFormat.XLSX, listDelimiter: ",");
// Access the default worksheet containing CSV data
WorkSheet sheet = workbook.DefaultWorkSheet;
// Display all rows and CSV columns
foreach (var row in sheet.Rows)
{
    foreach (var cell in row)
    {
        Console.Write(cell.Value + "\t");
    }
    Console.WriteLine();
}
$vbLabelText   $csharpLabel

Eingabe

CSV lesen in .NET: Der einfachste C#-Ansatz mit IronXL: Bild 2 – Beispiel-CSV-Eingabe

Ausgabe

CSV lesen in .NET: Der einfachste C#-Ansatz mit IronXL: Bild 3 - Konsolenausgabe

Die Methode LoadCSV akzeptiert drei Parameter: den Dateipfad, das Ziel-Excel-Format für die interne Darstellung und das Trennzeichen zwischen den Werten. Nach dem Laden ist der CSV-Inhalt über die Eigenschaft DefaultWorkSheet zugänglich, die das primäre Arbeitsblatt mit allen importierten Datensätzen bereitstellt.

Die verschachtelte Schleifenstruktur durchläuft jedes Row im Arbeitsblatt und anschließend jedes Cell innerhalb dieser Zeile. Die Eigenschaft Value gibt den Zelleninhalt als Objekt zurück, während das Tabulatorzeichen eine lesbare Spaltentrennung in der Konsolenausgabe erzeugt. Dieses Muster funktioniert in gleicher Weise, egal ob die Quelldatei 10 Zeilen oder große CSV-Dateien mit Tausenden von Datensätzen enthält.

IronXL funktioniert unter .NET Framework, .NET Core und .NET 5+ ohne Installation von Microsoft Office – und ist damit ideal für ASP.NET Core und .NET Core Web API-Projekte. Die Bibliothek ist auf NuGet verfügbar und lässt sich nahtlos in jeden Projekttyp integrieren. Wenn Sie lieber verstehen möchten, was eine Bibliothek für Sie erledigt, behandelt der nächste Abschnitt das manuelle Parsen.

Wie lässt sich manuelles CSV-Parsing mit der Verwendung einer Bibliothek vergleichen?

Das Verständnis der Komplexität, die IronXL beseitigt, trägt dazu bei, seinen Wert zu verdeutlichen. Das manuelle CSV-Parsing erfordert den Umgang mit mehreren Randfällen, die einfach erscheinen, aber in jedem Projekt schnell problematisch werden.

using System.IO;

// Manual approach -- requires extensive code for basic functionality
string path = "data.csv";
string[] lines = File.ReadAllLines(path);
foreach (string line in lines)
{
    // This breaks when CSV fields contain commas inside quotes
    string[] fields = line.Split(',');
    foreach (string field in fields)
    {
        Console.Write(field.Trim() + "\t");
    }
    Console.WriteLine();
}
using System.IO;

// Manual approach -- requires extensive code for basic functionality
string path = "data.csv";
string[] lines = File.ReadAllLines(path);
foreach (string line in lines)
{
    // This breaks when CSV fields contain commas inside quotes
    string[] fields = line.Split(',');
    foreach (string field in fields)
    {
        Console.Write(field.Trim() + "\t");
    }
    Console.WriteLine();
}
$vbLabelText   $csharpLabel

Eingabe

CSV lesen in .NET: Der einfachste C#-Ansatz mit IronXL: Bild 4 - CSV-Eingabe

Ausgabe

CSV lesen in .NET: Der einfachste C#-Ansatz mit IronXL: Bild 5 – Manuelle CSV-Parsing-Ausgabe

Die manuelle Vorgehensweise schlägt fehl, wenn CSV-Felder eingebettete Kommas innerhalb von Anführungszeichen enthalten – ein häufiges Szenario bei Adressfeldern oder Beschreibungen. Das korrekte Lesen von Dateien erfordert den Umgang mit in Anführungszeichen gesetzten Feldern, maskierten Anführungszeichen, mehrzeiligen Werten und unterschiedlichen Kodierungen. Einen eigenen Parser zu entwickeln bedeutet, einen StreamReader zu erstellen, Zustandsautomatenlogik zu implementieren und den gesamten Leseprozess selbst zu verwalten. Das ist ein beträchtlicher Standardsatz für etwas, das eigentlich nur ein Satz sein sollte.

Die IronXL Alternative behandelt alle Sonderfälle automatisch:

using IronXL;

// IronXL approach -- handles all edge cases automatically
WorkBook workbook = WorkBook.LoadCSV("data.csv", fileFormat: ExcelFileFormat.XLSX, listDelimiter: ",");
var records = workbook.DefaultWorkSheet.Rows;
foreach (var row in records)
{
    foreach (var cell in row)
    {
        Console.Write(cell.Value + "\t");
    }
    Console.WriteLine();
}
using IronXL;

// IronXL approach -- handles all edge cases automatically
WorkBook workbook = WorkBook.LoadCSV("data.csv", fileFormat: ExcelFileFormat.XLSX, listDelimiter: ",");
var records = workbook.DefaultWorkSheet.Rows;
foreach (var row in records)
{
    foreach (var cell in row)
    {
        Console.Write(cell.Value + "\t");
    }
    Console.WriteLine();
}
$vbLabelText   $csharpLabel

Die Klasse WorkBook verwaltet die Komplexität des Parsens intern, sodass Sie sich auf die Arbeit mit den Daten konzentrieren können, anstatt sie zu extrahieren. Mehr über die vollständigen Funktionen von IronXL erfahren Sie in der IronXL -Funktionsübersicht .

Wie geht man mit unterschiedlichen CSV-Trennzeichen um?

CSV-Dateien verwenden nicht immer Kommas als Trennzeichen. Bei Exporten aus dem europäischen Zahlensystem werden häufig Semikolons verwendet, da Kommas in Dezimalzahlen vorkommen. Tabulatorgetrennte Werte (TSV) und durch Pipes getrennte Dateien kommen regelmäßig bei Datenexporten aus verschiedenen Anwendungen und Altsystemen vor.

using IronXL;

// Reading a semicolon-delimited file (common in European exports)
WorkBook euroData = WorkBook.LoadCSV("german_report.csv", fileFormat: ExcelFileFormat.XLSX, listDelimiter: ";");
// Reading a tab-separated file
WorkBook tsvData = WorkBook.LoadCSV("exported_data.tsv", fileFormat: ExcelFileFormat.XLSX, listDelimiter: "\t");
// Reading a pipe-delimited file
WorkBook pipeData = WorkBook.LoadCSV("legacy_system.csv", fileFormat: ExcelFileFormat.XLSX, listDelimiter: "|");
// Access data identically regardless of original delimiter
WorkSheet sheet = euroData.DefaultWorkSheet;
int rowsCount = sheet.RowCount;
Console.WriteLine($"Loaded {rowsCount} rows with {sheet.ColumnCount} CSV columns");
using IronXL;

// Reading a semicolon-delimited file (common in European exports)
WorkBook euroData = WorkBook.LoadCSV("german_report.csv", fileFormat: ExcelFileFormat.XLSX, listDelimiter: ";");
// Reading a tab-separated file
WorkBook tsvData = WorkBook.LoadCSV("exported_data.tsv", fileFormat: ExcelFileFormat.XLSX, listDelimiter: "\t");
// Reading a pipe-delimited file
WorkBook pipeData = WorkBook.LoadCSV("legacy_system.csv", fileFormat: ExcelFileFormat.XLSX, listDelimiter: "|");
// Access data identically regardless of original delimiter
WorkSheet sheet = euroData.DefaultWorkSheet;
int rowsCount = sheet.RowCount;
Console.WriteLine($"Loaded {rowsCount} rows with {sheet.ColumnCount} CSV columns");
$vbLabelText   $csharpLabel

Der Parameter listDelimiter in LoadCSV akzeptiert ein beliebiges einzelnes Zeichen oder eine Escape-Sequenz als Feldtrennzeichen. Tabulatorzeichen verwenden die Escape-Sequenz \t. Nach dem Laden bleibt die Datenstruktur unabhängig vom Originalformat konsistent, was die Verarbeitung von CSV-Dateien aus verschiedenen Quellen mit unterschiedlichen Begrenzungszeichen erleichtert. Der Standardwert für die meisten CSV-Dateien ist ein Komma, aber diese Flexibilität ermöglicht es, jede im Projekt auftretende Variation zu bewältigen.

Eingabe

CSV lesen in .NET: Der einfachste C#-Ansatz mit IronXL: Bild 6 – Semikolon-getrennte CSV-Datei-Eingabe

Ausgabe

CSV lesen in .NET: Der einfachste C#-Ansatz mit IronXL: Bild 7 – Semikolon-getrennte Ausgabe

Die Eigenschaften RowCount und ColumnCount ermöglichen eine schnelle Überprüfung, ob die Datei korrekt geladen wurde – besonders nützlich bei der Arbeit mit unbekannten Datenquellen oder bei der Validierung von Benutzer-Uploads in einer ASP.NET Core -Anwendung.

Kodierungsüberlegungen

Beim Lesen von Dateien mit Nicht-ASCII-Zeichen, wie z. B. Akzentbuchstaben in französischen oder deutschen Daten, liest IronXL die Kodierung automatisch aus der Byte Order Mark (BOM) der Datei. Bei Dateien ohne Byte Order Mark (BOM) müssen Sie möglicherweise die Kodierung an der Quelle überprüfen. Die Dokumentation von Microsoft zur Dateikodierung bietet eine umfassende Referenz für Kodierungstypen in .NET.

Welches sind die besten Methoden zur Konvertierung von CSV in DataTable?

Die Konvertierung von CSV-Daten in ein DataTable-Format ermöglicht die Integration mit Datenbankoperationen, die Datenbindung in UI-Anwendungen und LINQ-Abfragen. Die Methode ToDataTable führt diese Konvertierung mit einem einzigen Aufruf durch.

using IronXL;
using System.Data;

// Load CSV and convert to DataTable
WorkBook workbook = WorkBook.LoadCSV("customers.csv", ExcelFileFormat.XLSX, ",");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert worksheet to DataTable -- true parameter uses CSV header as column names
DataTable dataTable = sheet.ToDataTable(true);
// DataTable is now ready for database operations, binding, or LINQ queries
Console.WriteLine($"DataTable created with {dataTable.Columns.Count} columns:");
foreach (DataColumn column in dataTable.Columns)
{
    // Property names from CSV header become column names
    Console.WriteLine($"  - {column.ColumnName}");
}
Console.WriteLine($"\nTotal records: {dataTable.Rows.Count}");
// Access data using standard DataTable syntax
foreach (DataRow row in dataTable.Rows)
{
    // Access by column index or name attribute
    string name = row["Name"].ToString();
    string email = row["Email"].ToString();
    Console.WriteLine($"Customer: {name}, Email: {email}");
}
using IronXL;
using System.Data;

// Load CSV and convert to DataTable
WorkBook workbook = WorkBook.LoadCSV("customers.csv", ExcelFileFormat.XLSX, ",");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert worksheet to DataTable -- true parameter uses CSV header as column names
DataTable dataTable = sheet.ToDataTable(true);
// DataTable is now ready for database operations, binding, or LINQ queries
Console.WriteLine($"DataTable created with {dataTable.Columns.Count} columns:");
foreach (DataColumn column in dataTable.Columns)
{
    // Property names from CSV header become column names
    Console.WriteLine($"  - {column.ColumnName}");
}
Console.WriteLine($"\nTotal records: {dataTable.Rows.Count}");
// Access data using standard DataTable syntax
foreach (DataRow row in dataTable.Rows)
{
    // Access by column index or name attribute
    string name = row["Name"].ToString();
    string email = row["Email"].ToString();
    Console.WriteLine($"Customer: {name}, Email: {email}");
}
$vbLabelText   $csharpLabel

Der boolesche Parameter in ToDataTable bestimmt, ob die erste Zeile zu Spaltenüberschriften (true) oder Daten (false) werden soll. Bei der Einstellung true tragen die resultierenden Spalten DataTable die Spaltennamen aus der CSV-Datei, wodurch ein intuitiver Datenzugriff über Spaltennamen wie row["Name"] ermöglicht wird.

Verwendung von DataTable für die Datenbank- und UI-Integration

Diese Konvertierung erweist sich als wertvoll für Szenarien, die Masseneinfügungen in Datenbanken mit SqlBulkCopy, das Befüllen von DataGridView Steuerelementen in Windows Forms-Anwendungen oder die Durchführung komplexer Datentransformationen mit LINQ-Ausdrücken erfordern. Das Format DataTable lässt sich außerdem nahtlos in Entity Framework und andere ORM-Tools in Ihrem .NET Core Web API-Projekt integrieren. Mehr über DataTable-Exportmuster erfahren Sie im IronXL DataTable-Leitfaden .

Weitere Beispiele für die Arbeit mit tabellarischen Daten in .NET finden Sie in der ADO .NET Übersicht von Microsoft .

Wie konvertiert man CSV-Dateien in das Excel-Format?

Eine der herausragenden Fähigkeiten von IronXL ist die Konvertierung von CSV-Daten in geeignete Excel-Formate. Dies ermöglicht das Hinzufügen von Formeln, Formatierungen, Diagrammen und mehreren Arbeitsblättern zu ursprünglich flachen CSV-Daten – etwas, das mit der CSV-Ausgabe allein nicht möglich ist.

using IronXL;

// Load CSV data from file path
string path = "quarterly_sales.csv";
WorkBook workbook = WorkBook.LoadCSV(path, ExcelFileFormat.XLSX, ",");
// Save as Excel XLSX format -- creates a new Excel file
workbook.SaveAs("quarterly_sales.xlsx");
// Alternative: Save as legacy XLS format for older Excel versions
workbook.SaveAs("quarterly_sales.xls");
Console.WriteLine("CSV successfully converted to Excel format");
using IronXL;

// Load CSV data from file path
string path = "quarterly_sales.csv";
WorkBook workbook = WorkBook.LoadCSV(path, ExcelFileFormat.XLSX, ",");
// Save as Excel XLSX format -- creates a new Excel file
workbook.SaveAs("quarterly_sales.xlsx");
// Alternative: Save as legacy XLS format for older Excel versions
workbook.SaveAs("quarterly_sales.xls");
Console.WriteLine("CSV successfully converted to Excel format");
$vbLabelText   $csharpLabel

Die Methode SaveAs bestimmt automatisch das Ausgabeformat anhand der Dateierweiterung. XLSX erstellt moderne Office Open XML-Dateien, die mit Excel 2007 und späteren Versionen kompatibel sind, während XLS Legacy-Dokumente im Binary Interchange File Format für ältere Anwendungen erzeugt.

Eingabe

CSV lesen in .NET: Der einfachste C#-Ansatz mit IronXL: Bild 8 - CSV-Daten

Ausgabe

CSV lesen in .NET: Der einfachste C#-Ansatz mit IronXL: Bild 9 - Excel-Ausgabe

CSV lesen in .NET: Der einfachste C#-Ansatz mit IronXL: Bild 10 – CSV-zu-Excel-Ausgabe

Dieser Workflow erweist sich als besonders nützlich, wenn CSV-Exporte aus Datenbanken oder APIs vor der Verteilung an die Benutzer noch optimiert werden müssen. Nach der Konvertierung kann die Excel-Datei mit zusätzlichen Formatierungen und Formeln versehen oder mit anderen Arbeitsblättern kombiniert werden – alles programmatisch über die Bearbeitungsfunktionen von IronXL. Der Prozess ist vollständig skriptfähig und eignet sich daher für automatisierte Berichtspipelines oder geplante Aufgaben.

Wie greift man auf bestimmte Zellwerte in CSV-Daten zu?

IronXL kann nicht nur durch alle Datensätze iterieren, sondern bietet auch direkten Zellzugriff über die vertraute Adressierung im Excel-Stil. Dies ermöglicht eine gezielte Datenextraktion und einen typsicheren Abruf von Werten über verschiedene Datentypen hinweg.

using IronXL;

WorkBook workbook = WorkBook.LoadCSV("inventory.csv", ExcelFileFormat.XLSX, ",");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Access specific cells using Excel-style addresses by index
string productName = sheet["A2"].StringValue;
int quantity = sheet["B2"].IntValue;
decimal price = sheet["C2"].DecimalValue;
Console.WriteLine($"Product: {productName}");
Console.WriteLine($"Quantity: {quantity}");
Console.WriteLine($"Price: ${price:F2}");
// Access a range of cells -- return records from column A
var productRange = sheet["A2:A10"];
Console.WriteLine("\nAll products:");
foreach (var cell in productRange)
{
    Console.WriteLine($"  - {cell.StringValue}");
}
using IronXL;

WorkBook workbook = WorkBook.LoadCSV("inventory.csv", ExcelFileFormat.XLSX, ",");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Access specific cells using Excel-style addresses by index
string productName = sheet["A2"].StringValue;
int quantity = sheet["B2"].IntValue;
decimal price = sheet["C2"].DecimalValue;
Console.WriteLine($"Product: {productName}");
Console.WriteLine($"Quantity: {quantity}");
Console.WriteLine($"Price: ${price:F2}");
// Access a range of cells -- return records from column A
var productRange = sheet["A2:A10"];
Console.WriteLine("\nAll products:");
foreach (var cell in productRange)
{
    Console.WriteLine($"  - {cell.StringValue}");
}
$vbLabelText   $csharpLabel

Die Adressierung der Zellen folgt den Konventionen von Excel, wobei Buchstaben für CSV-Spalten (A, B, C) und Zahlen für Zeilenindexpositionen (1, 2, 3) stehen. Die Klasse Cell bietet typspezifische Zugriffsmethoden, darunter StringValue, IntValue, DecimalValue, BoolValue und DateTimeValue. Diese Zugriffsmethoden übernehmen das Parsen und die Konvertierung automatisch, wodurch die manuelle Typumwandlung im Vergleich zur Speicherung aller Werte als Zeichenketten entfällt.

Die Bereichsauswahl mit einer Neintation wie A2:A10 gibt ein Range- Objekt zurück, das Iteration, Aggregatfunktionen und Massenoperationen unterstützt. Dies erweist sich beim Extrahieren bestimmter Spalten oder rechteckiger Datenbereiche aus großen CSV-Dateien als nützlich. Sie können beispielsweise eine Liste von Werten aus einer bestimmten Spalte erstellen oder gefilterte Daten in eine andere Datei schreiben. Weitere Beispiele finden Sie im IronXL Bereichsleitfaden .

Wie geht man mit Fehlern beim Lesen von CSV-Dateien um?

Produktionsanwendungen benötigen defensiven Code für Dateivorgänge. Das Einlesen von CSV-Dateien kann aus verschiedenen Gründen fehlschlagen: Die Datei existiert nicht, der Zugriff wird verweigert, die Daten sind fehlerhaft oder der Speicherplatz reicht für sehr große Dateien nicht aus. Durch das Einbetten von IronXL Aufrufen in try/catch Blöcke und die Validierung der Pfade vor dem Laden wird ein zuverlässiges Verhalten in verschiedenen Umgebungen gewährleistet.

using IronXL;
using System.IO;

string filePath = "customers.csv";
if (!File.Exists(filePath))
{
    Console.WriteLine($"File not found: {filePath}");
    return;
}
try
{
    WorkBook workbook = WorkBook.LoadCSV(filePath, ExcelFileFormat.XLSX, ",");
    WorkSheet sheet = workbook.DefaultWorkSheet;
    DataTable dataTable = sheet.ToDataTable(true);
    Console.WriteLine($"Loaded {dataTable.Rows.Count} records successfully.");
}
catch (IronXl.Exceptions.IronXLException ex)
{
    Console.WriteLine($"IronXL parsing error: {ex.Message}");
}
catch (IOException ex)
{
    Console.WriteLine($"File access error: {ex.Message}");
}
catch (Exception ex)
{
    Console.WriteLine($"Unexpected error: {ex.Message}");
}
using IronXL;
using System.IO;

string filePath = "customers.csv";
if (!File.Exists(filePath))
{
    Console.WriteLine($"File not found: {filePath}");
    return;
}
try
{
    WorkBook workbook = WorkBook.LoadCSV(filePath, ExcelFileFormat.XLSX, ",");
    WorkSheet sheet = workbook.DefaultWorkSheet;
    DataTable dataTable = sheet.ToDataTable(true);
    Console.WriteLine($"Loaded {dataTable.Rows.Count} records successfully.");
}
catch (IronXl.Exceptions.IronXLException ex)
{
    Console.WriteLine($"IronXL parsing error: {ex.Message}");
}
catch (IOException ex)
{
    Console.WriteLine($"File access error: {ex.Message}");
}
catch (Exception ex)
{
    Console.WriteLine($"Unexpected error: {ex.Message}");
}
$vbLabelText   $csharpLabel

Validierungsmuster für CSV-Daten

Neben dem Abfangen von Ausnahmen hilft die Überprüfung der Zeilen- und Spaltenanzahl nach dem Laden dabei, abgeschnittene Dateien oder unerwartete Schemaänderungen zu erkennen. Durch die Prüfung von sheet.RowCount auf einen erwarteten Mindestwert oder durch die Überprüfung, ob bestimmte Spaltenüberschriften in der ersten Zeile vorhanden sind, werden Datenprobleme frühzeitig in der Datenverarbeitung erkannt, bevor sie sich weiter unten auswirken. Die Richtlinien von Microsoft zur Ausnahmebehandlung umfassen Best Practices für eine strukturierte Fehlerbehandlung in .NET.

Bei Anwendungen, die vom Benutzer hochgeladene CSV-Dateien verarbeiten, sollte vor dem Laden stets die Dateigröße überprüft, die Dateinamen bereinigt und die zulässigen Inhaltstypen am Upload-Endpunkt eingeschränkt werden. Diese Vorkehrungen verhindern eine Ressourcenerschöpfung durch zu große Dateien und schützen vor Path-Traversal-Angriffen.

IronXL verfügt über einen eigenen Ausnahmetyp IronXl.Exceptions.IronXLException für bibliotheksspezifische Fehler, wodurch sich Parsing-Fehler unkompliziert von allgemeinen Ein-/Ausgabeproblemen unterscheiden lassen. Weitere Details finden Sie in der IronXL API-Referenz .

Wie liest man große CSV-Dateien ohne Speicherprobleme?

Bei Dateien mit Hunderttausenden von Zeilen kann es unpraktisch sein, den gesamten Datensatz auf einmal in den Speicher zu laden. IronXL liest die gesamte Datei in ein WorkBook-Objekt ein, das alle Daten im Speicher hält. Bei umfangreichen ETL-Szenarien (Extrahieren, Transformieren, Laden) ist es eine praktische Strategie, die CSV-Datei in Batches zu verarbeiten, indem die Quelldatei vor dem Laden aufgeteilt wird, oder indem Zeilen aus einem StreamReader gestreamt und Teile in separate Arbeitsmappen geschrieben werden.

Die IronXL Dokumentation zum Lesen von Excel-Dateien behandelt auch Leistungsaspekte bei großen Arbeitslasten. Speziell für CSV bedeutet die zeilenweise Struktur des CSV-Formats, dass ein einfaches File.ReadAllLines mit manueller Stapelverarbeitung einen vorhersehbaren Speicherbedarf ergibt, wenn der Datensatz zu groß für einen einzelnen Ladevorgang in den Arbeitsspeicher ist.

Vergleich von IronXL mit alternativen CSV-Bibliotheken

IronXL ist nicht die einzige CSV-Bibliothek for .NET. CsvHelper ist eine weit verbreitete Open-Source-Alternative, die sich auf Streaming, Datensatzzuordnung und attributbasierte Konfiguration spezialisiert hat. Der entscheidende Unterschied liegt im Umfang: CsvHelper konzentriert sich ausschließlich auf CSV, während IronXL das gesamte Tabellenkalkulations-Ökosystem abdeckt – Lesen, Schreiben und Konvertieren von XLSX, XLS, CSV und anderen Formaten über eine einheitliche API. Wenn Ihre Anwendung bereits IronXL für Excel-Operationen verwendet, vermeidet die Verarbeitung von CSV-Dateien mit derselben Bibliothek eine zusätzliche Abhängigkeit. Wenn Sie ausschließlich mit dem CSV-Format arbeiten und Streaming-Unterstützung benötigen, ist eine Streaming-CSV-Bibliothek möglicherweise besser für Sie geeignet.

IronXL vs. CsvHelper: Wichtigste Unterschiede beim Einlesen von CSV-Dateien in .NET
Merkmal IronXL CsvHelper
CSV-Lesen Ja Ja
Excel-Unterstützung (XLSX/XLS) Ja Nein
Streaming großer Dateien Nur im Arbeitsspeicher Ja (Streaming)
Benutzerdefinierte Trennzeichen Ja (Listentrennzeichen) Ja (Konfiguration)
DataTable-Konvertierung Eingebaut (ToDataTable) Manuelle Kartierung
Lizenz Kommerziell Open Source (MS-PL)

Was sind Ihre nächsten Schritte?

Das Lesen von CSV-Dateien in .NET erfordert nur minimalen Aufwand, wenn der richtige Ansatz gewählt wird. Die Methode LoadCSV von IronXL bewältigt die Komplexität des Parsens automatisch, unterstützt verschiedene Trennzeichen, ermöglicht den sofortigen Zugriff auf strukturierte Daten und konvertiert diese mit einem einzigen Methodenaufruf in Excel oder DataTable. Egal ob Sie eine ASP.NET Core Anwendung, eine .NET Core Web-API oder ein Konsolenprojekt erstellen, die Bibliothek vereinfacht die CSV-Verarbeitung von Anfang bis Ende.

Entdecken Sie weitere Funktionen von IronXL , um Ihr hier erworbenes Wissen zu erweitern:

Starten Sie eine kostenlose Testversion und erleben Sie selbst, wie IronXL das Lesen von CSV-Dateien in Ihren .NET Projekten vereinfacht. Für den Produktionseinsatz beinhalten die Lizenzoptionen unbefristete Nutzungsrechte und ein Jahr Support.

Häufig gestellte Fragen

Wie lassen sich CSV-Dateien in C# am einfachsten lesen?

Der einfachste Weg, CSV-Dateien in C# zu lesen, ist die Verwendung von IronXL, das eine unkomplizierte und effiziente Methode zur Verarbeitung von CSV-Daten bietet.

Kann IronXL große CSV-Dateien effizient verarbeiten?

Ja, IronXL ist für die Verarbeitung großer CSV-Dateien ausgelegt und eignet sich daher für die Verarbeitung umfangreicher Datensätze ohne Leistungsprobleme.

Ist IronXL mit .NET-Anwendungen kompatibel?

IronXL ist vollständig kompatibel mit .NET-Anwendungen und ermöglicht es Entwicklern, CSV-Lesefunktionen einfach in ihre C#-Projekte zu integrieren.

Unterstützt IronXL das Lesen von CSV-Dateien mit verschiedenen Begrenzungszeichen?

IronXL unterstützt das Lesen von CSV-Dateien mit verschiedenen Begrenzungszeichen und bietet somit Flexibilität bei der Verarbeitung von Dateien mit unterschiedlichen Formaten.

Kann IronXL CSV-Dateien mit Kopfzeilen parsen?

Ja, IronXL kann CSV-Dateien mit Kopfzeilen analysieren, so dass Sie leicht auf Daten nach Spaltennamen zugreifen können.

Wie vereinfacht IronXL die Manipulation von CSV-Daten?

IronXL vereinfacht die Bearbeitung von CSV-Daten, indem es intuitive Methoden zum Lesen, Bearbeiten und Schreiben von CSV-Daten direkt in C# bietet.

Gibt es Unterstützung für das asynchrone Lesen von CSV-Dateien in IronXL?

IronXL unterstützt asynchrone Operationen, so dass Sie CSV-Dateien lesen können, ohne den Hauptanwendungsthread zu blockieren.

Kann IronXL CSV-Daten in das Excel-Format konvertieren?

IronXL kann CSV-Daten in das Excel-Format konvertieren, sodass Sie die Funktionen von Excel für Datenanalyse und -präsentation nutzen können.

Hat IronXL irgendwelche Abhängigkeiten für das Lesen von CSV-Dateien?

IronXL ist eine eigenständige Bibliothek, die keine externen Abhängigkeiten benötigt, um CSV-Dateien zu lesen, was den Einrichtungsprozess in Ihren Projekten vereinfacht.

Kann IronXL verwendet werden, um Daten von CSV in andere Formate zu exportieren?

IronXL kann Daten aus dem CSV-Format in verschiedene Formate exportieren, darunter auch Excel, was die Vielseitigkeit bei der Datenverarbeitung und Berichterstellung erhöht.

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