Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Lesen Sie CSV-Dateien mit C# (Codebeispiel-Tutorial)

Dieses Tutorial demonstriert, wie man eine CSV-Datei mit der IronXL C#-Bibliothek liest, ohne zusätzliche Interop zu installieren, auf eine sehr effiziente und effektive Weise.

class="hsg-featured-snippet">

Wie liest man eine CSV-Datei Zeile für Zeile in C#

  1. Installieren Sie die C#-Bibliothek, um die CSV-Datei Zeile für Zeile zu lesen
  2. Verwenden Sie die erweiterte LoadCSV Methode, um die CSV-Datei zu lesen
  3. Fangen Sie das Laden einer nicht vorhandenen Datei mit der Exists Methode in C# ab
  4. Konvertieren Sie CSV-Daten mithilfe der ToDataTable Methode in eine Datenbank
  5. Verwenden Sie die SaveAs Methode, um die Excel-Datei zu exportieren, während CSV-Daten automatisch in Excel konvertiert werden

Wie man CSV-Dateien in C# liest

Sie müssen zuerst IronXL installieren, bevor Sie es verwenden, um CSV-Dateien in MVC, ASP.NET oder .NET Core zu lesen. Hier ist ein grundlegender Überblick über den Prozess.

Wählen Sie im Visual Studio das Menü Projekt, Verwalten von NuGet-Paketen und suchen Sie nach IronXL.Excel und installieren Sie es.

CSV-Datei mit C# lesen (Codebeispiel-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 lesen in C# müssen. Das untenstehende Codebeispiel zeigt, dass Sie eine CSV-Datei mit Kommas oder einem anderen Trennzeichen lesen können.

// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("Csv_To_Excel.xlsx");
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("Csv_To_Excel.xlsx");
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")

' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Save the workbook as an Excel file
workbook.SaveAs("Csv_To_Excel.xlsx")
$vbLabelText   $csharpLabel

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

Das Objekt WorkBook wird erstellt. Die WorkBook Methode 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 String-Array gespeichert werden. In diesem Szenario werden Kommas als Trennzeichen verwendet.

Danach wird ein WorkSheet Objekt erstellt; dort werden die Inhalte der CSV-Datei gespeichert. Die Datei wird dann umbenannt und in einem neuen Format gespeichert. Die CSV-Dateidaten werden dann im Arbeitsblatt in tabellarischer Form angeordnet. Die Ausgabe wird in etwa wie folgt aussehen:

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

CSV-Parsing in C# .NET

CSVs haben mehrere Probleme mit der Behandlung von Zeilenumbrüchen in Feldern und wie Felder in Anführungszeichen eingeschlossen sein können, was verhindert, dass eine einfache String-Split-Technik funktioniert Split("'"). Stattdessen bietet IronXL an, über den optionalen Parameter der LoadCSV Methode das Trennzeichen anzupassen, die API-Dokumentation von LoadCSV bietet weitere Details.

C# Records — Lesen von CSV-Daten

Im folgenden Beispiel wird die foreach Schleife verwendet, um die Zeilen in der CSV-Datei zu durchlaufen, und die Konsole wird verwendet, um die Daten in einem Datensatz zu schreiben.

// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Convert the worksheet data into a DataTable
DataTable dt = ws.ToDataTable(true); // The argument true indicates the first row is header

// Iterate through each row in the DataTable
foreach (DataRow row in dt.Rows)
{
    // Iterate through each column in the current row
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        // Output each cell value to the console
        Console.Write(row[i] + "  ");
    }
    // New line after each row
    Console.WriteLine();
}
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Convert the worksheet data into a DataTable
DataTable dt = ws.ToDataTable(true); // The argument true indicates the first row is header

// Iterate through each row in the DataTable
foreach (DataRow row in dt.Rows)
{
    // Iterate through each column in the current row
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        // Output each cell value to the console
        Console.Write(row[i] + "  ");
    }
    // New line after each row
    Console.WriteLine();
}
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")

' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Convert the worksheet data into a DataTable
Dim dt As DataTable = ws.ToDataTable(True) ' The argument true indicates the first row is header

' Iterate through each row in the DataTable
For Each row As DataRow In dt.Rows
	' Iterate through each column in the current row
	For i As Integer = 0 To dt.Columns.Count - 1
		' Output each cell value to the console
		Console.Write(row(i) & "  ")
	Next i
	' New line after each row
	Console.WriteLine()
Next row
$vbLabelText   $csharpLabel

CSV-Datei mit C# lesen (Codebeispiel-Tutorial), Abbildung 4: Daten aus der CSV-Datei abrufen und in der Konsole anzeigen Daten aus der CSV-Datei abrufen und in der Konsole anzeigen

Umwandeln einer CSV-Dateizeile in das Excel-Format

Das Verfahren ist einfach: eine CSV-Datei laden und als Excel-Datei speichern.

// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")

' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx")
$vbLabelText   $csharpLabel

Konvertierte CSV-Dateien mit IronXL lesen und bearbeiten

Die IronXL WorkBook Klasse stellt ein Excel-Blatt dar 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 from a .xlsx file
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
// Load WorkBook from a .xlsx file
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
' Load WorkBook from a .xlsx file
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 das Arbeitsbuch Arbeitsblätter hat, können Sie diese folgendermaßen nach Namen abrufen:

// Open a specific worksheet for reading by its name
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
// Open a specific worksheet for reading by its name
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
' Open a specific worksheet for reading by its name
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
$vbLabelText   $csharpLabel

Code zum Lesen der Zellwerte:

// Read and output values from a range of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read and output values from a range of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read and output values from a range 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 sie auf bestimmte Zellen anwenden, nachdem das Arbeitsbuch und das Arbeitsblatt geladen und gelesen wurden. Der folgende Code lautet:

// Set formulas for specific cells
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 for specific cells
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 for specific cells
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 Spezialangebot

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

Ohne die Notwendigkeit von Interop ist die Verwendung von IronXLs Excel-API einfach. Furthermore, IronXL also offers a wide range of features to interact with Excel WorkBook, WorkSheet and Cells level such as converting between popular formats, cell data formatting, merging cells, inserting math functions, and even managing charts and adding images.

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

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

IronPDF, IronXL, IronOCR, IronBarcode und der IronWebscraper sind alle Teil der Iron Software Suite. Iron Software ermöglicht den Kauf ihres gesamten Pakets zu einem reduzierten Preis. Sie können all diese Tools zum Preis von zwei nutzen.

Dies ist definitiv eine Option, die es wert ist, erkundet zu werden.

Häufig gestellte Fragen

Wie kann ich eine CSV-Datei in C# lesen?

Sie können eine CSV-Datei in C# mit der IronXL-Bibliothek lesen, indem Sie die LoadCSV-Methode verwenden, mit der Sie die CSV-Daten in ein WorkBook-Objekt laden können, um sie weiter zu bearbeiten.

Was ist der beste Weg, um CSV-Daten in ein Excel-Format in C# zu konvertieren?

Der beste Weg, CSV-Daten in ein Excel-Format in C# zu konvertieren, ist die Verwendung von IronXL. Laden Sie Ihre CSV in ein WorkBook-Objekt und verwenden Sie die SaveAs-Methode, um sie als Excel-Datei zu speichern.

Wie gehe ich mit CSV-Dateien mit benutzerdefinierten Trennzeichen in C# mithilfe einer Bibliothek um?

Mit IronXL können Sie CSV-Dateien mit benutzerdefinierten Trennzeichen verarbeiten, indem Sie das Trennzeichen als optionalen Parameter in der LoadCSV-Methode angeben.

Kann ich CSV-Daten direkt in ein Datenbankformat in C# konvertieren?

Ja, Sie können CSV-Daten in ein Datenbankformat in C# umwandeln, indem Sie die ToDataTable-Methode von IronXL verwenden, die die Daten in ein für Datenbankoperationen geeignetes DataTable-Objekt umwandelt.

Welche Methoden sind verfügbar, um nicht existierende CSV-Dateien in C# zu überprüfen?

In C# können Sie die Exists-Methode von IronXL verwenden, um zu überprüfen, ob eine CSV-Datei vorhanden ist, bevor Sie versuchen, sie zu laden, und so Fehler im Zusammenhang mit nicht existierenden Dateien vermeiden.

Wie kann ich Excel-Daten nach der Umwandlung von CSV in C# manipulieren?

Nach der Umwandlung von CSV in Excel in C# können Sie die Daten mithilfe der Funktionen von IronXL wie Formatierung, Zusammenführen von Zellen, Einfügen von mathematischen Funktionen und Hinzufügen von Diagrammen oder Bildern manipulieren.

Welche Vorteile bietet IronXL beim Lesen und Umwandeln von CSV-Dateien in C#?

IronXL bietet Vorteile wie einfache Installation, keine Notwendigkeit zusätzlicher Interop, Unterstützung für benutzerdefinierte Trennzeichen und leistungsstarke Methoden zur Umwandlung und Bearbeitung von CSV-Daten innerhalb von Excel.

Wie können Sonderzeichen in CSV-Daten in C# behandelt werden?

IronXL kann Sonderzeichen in CSV-Daten verarbeiten, indem Sie beim Laden der CSV-Datei die Dateicodierung und Trennzeichen angeben, um Datenintegrität und Genauigkeit sicherzustellen.

Welche Unterstützung steht IronXL-Benutzern zur Verfügung?

IronXL-Lizenzen beinhalten ein Jahr kostenlose Unterstützung und Updates, die Unterstützung bieten und sicherstellen, dass Sie die neuesten Funktionen und Korrekturen haben.

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