IRONXL VERWENDEN

CSV-Datei mit C# lesen (Codebeispiel-Tutorial)

Regan Pun
Regan Pun
29. Juni 2022
Aktualisiert 29. Januar 2024
Teilen Sie:

Dieses Tutorial demonstriert, wie man eine CSV-Datei mit der IronXL C#-Bibliothek ohne zusätzliche Interop-Installation auf höchst effiziente und effektive Weise lesen kann.

Wie man CSV-Dateien in C# liest;

Sie müssen IronXL zunächst installieren, bevor Sie es zum Lesen von CSV-Dateien in MVC, ASP.NET oder .NET Core verwenden können. Im Folgenden finden Sie einen Überblick über das Verfahren.

Wählen Sie im Visual Studio das Projektmenü aus, verwalten Sie NuGet-Pakete, suchen Sie nach IronXL.Excel und installieren Sie es.

CSV-Datei mit C# lesen (Code-Example-Tutorial), Abbildung 1: Installieren Sie das IronXL-Paket im NuGet-Paket-Manager

Installieren Sie das IronXL-Paket im NuGet-Paket-Manager

IronXL ist ein großartiges Werkzeug, wenn Sie CSV-Dateien in C# lesen müssen. Das folgende Codebeispiel zeigt, dass Sie eine CSV-Datei mit Kommas oder einem anderen Trennzeichen lesen können.

WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("Csv_To_Excel.xlsx");
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("Csv_To_Excel.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
workbook.SaveAs("Csv_To_Excel.xlsx")
$vbLabelText   $csharpLabel

CSV-Datei mit C# lesen (Code-Beispiel-Tutorial), Abbildung 2: CSV-Daten für dieses Tutorial

CSV-Daten für dieses Tutorial

Das Objekt WorkBook wird erstellt. Die WorkBook-Objektmethode LoadCSV wird dann verwendet, um den Namen der CSV-Datei, ihr Format und die in der zu lesenden CSV-Datei verwendeten Trennzeichen anzugeben, die als Zeichenfolgenarray gespeichert sind. In diesem Szenario werden Kommas als Begrenzungszeichen verwendet.

Danach wird ein WorkSheet-Objekt erstellt; hier wird der Inhalt der CSV-Datei gespeichert. Die Datei wird dann umbenannt und in einem neuen Format gespeichert. Die Daten der CSV-Datei werden dann im Arbeitsblatt in tabellarischer Form angeordnet. Die Ausgabe sieht dann etwa so aus:

CSV-Datei mit C# lesen (Codebeispiel-Tutorial), Abbildung 3: Daten in Excel-Datei konvertiert

Daten in Excel-Datei konvertiert

CSV-Parsing in C#; .NET

CSVs haben mehrere Probleme damit, wie Zeilenumbrüche in Feldern behandelt werden und wie Felder in Anführungszeichen eingeschlossen sein können, was verhindert, dass eine einfache String-Split-Technik funktioniert Split("'"). Stattdessen bietet IronXL die Möglichkeit, den Delimiter mit einem optionalen Parameter der LoadCSV-Methode anzupassen. Weitere Details finden Sie in der API-Dokumentation von LoadCSV.

C# Datensätze - Lesen von CSV-Daten

Im nachfolgenden Beispiel wird foreach verwendet, um über die Zeilen in der CSV-Datei zu iterieren, und die Konsole wird verwendet, um die Daten in einem Datensatz zu schreiben.

WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  ");
    }
    Console.WriteLine();
}
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  ");
    }
    Console.WriteLine();
}
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
Dim dt As DataTable = ws.ToDataTable(True) 'parse sheet1 of sample.xlsx file into datatable
For Each row As DataRow In dt.Rows 'access rows
	For i As Integer = 0 To dt.Columns.Count - 1 'access columns of corresponding row
		Console.Write(row (i) & "  ")
	Next i
	Console.WriteLine()
Next row
$vbLabelText   $csharpLabel

CSV-Datei mit C# lesen (Code-Beispiel-Tutorial), Abbildung 4: Zugriff auf Daten aus der CSV-Datei und Anzeige in der Konsole

Zugriff auf Daten aus einer CSV-Datei und Anzeige in der Konsole

Konvertieren einer CSV-Dateizeile in das Excel-Format

Das Verfahren ist einfach: Laden einer CSV-Datei und Speichern als Excel-Datei.

WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;

workbook.SaveAs("CsvToExcelConversion.xlsx");
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;

workbook.SaveAs("CsvToExcelConversion.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet

workbook.SaveAs("CsvToExcelConversion.xlsx")
$vbLabelText   $csharpLabel

Lesen und Manipulieren konvertierter CSV-Dateien mit IronXL

Die IronXL-WorkBook-Klasse repräsentiert ein Excel-Blatt und verwendet diese Klasse, um eine Excel-Datei in C# zu öffnen. Die folgenden Codebeispiele laden die gewünschte Excel-Datei in ein WorkBook-Objekt:

//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
'Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
$vbLabelText   $csharpLabel

WorkSheet-Objekte können in zahlreichen WorkBooks gefunden werden. Dies sind die Arbeitsblätter des Excel-Dokuments. Wenn die Arbeitsmappe Arbeitsblätter enthält, können Sie diese wie folgt nach ihrem Namen suchen:

//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
'Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
$vbLabelText   $csharpLabel

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.
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 cell
$vbLabelText   $csharpLabel

Das folgende Codebeispiel kann Formeln aktualisieren oder nach dem Laden und Lesen der Arbeitsmappe und des Arbeitsblatts auf bestimmte Zellen anwenden. Der Code lautet wie folgt:

// 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();
' 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()
$vbLabelText   $csharpLabel

Fazit und IronXL-Sonderangebot

IronXL wandelt CSV-Dateien mit nur zwei Codezeilen in Excel um, zusätzlich zur CSV-Verarbeitung in C#.

Ohne Interop ist die Verwendung der Excel-API von IronXL ein Kinderspiel. Darüber hinaus bietet IronXL auch eine breite Palette von Funktionen zur Interaktion mit Excel-Arbeitsmappen, Arbeitsblättern und Zellen, wie z. B. Konvertierung zwischen gängigen Formaten, Zell-Datenformatierung, Zusammenführen von Zellen, Einfügen von mathematischen Funktionen und sogar zum Verwalten von Diagrammen und Hinzufügen von Bildern.

Sie können ohne Wasserzeichen starten, indem Sie IronXL-Testlizenzschlüssel verwenden.

Lizenzen beginnen bei $749 und beinhalten ein Jahr kostenlosen Support und Updates.

IronPDF, IronXL, IronOCR, IronBarcode und der IronWebscraper sind alle Teil der Iron Software Suite. Iron Software bietet Ihnen die Möglichkeit, ihr gesamtes Paket zu einem reduzierten Preis zu erwerben. Sie können all diese Tools zum Preis von zwei nutzen.

Diese Option ist auf jeden Fall eine Überlegung wert.

Regan Pun
Software-Ingenieur
Regan schloss sein Studium an der University of Reading mit einem BA in Elektrotechnik ab. Bevor er zu Iron Software kam, konzentrierte er sich in seinen früheren Jobs auf einzelne Aufgaben. Was ihm bei Iron Software am meisten Spaß macht, ist das Spektrum der Aufgaben, die er übernehmen kann, sei es im Vertrieb, im technischen Support, in der Produktentwicklung oder im Marketing. Es macht ihm Spaß, die Art und Weise zu verstehen, wie Entwickler die Bibliothek von Iron Software nutzen, und dieses Wissen zu nutzen, um die Dokumentation und die Produkte kontinuierlich zu verbessern.
< PREVIOUS
Wie man einen CSV-Parser in C# verwendet
NÄCHSTES >
C# Excel-Datei programmatisch öffnen (Code-Beispiel-Tutorial)

Sind Sie bereit, loszulegen? Version: 2025.3 gerade veröffentlicht

Lizenzen anzeigen >