using IronXL;
using System;
using System.Linq;
// Supported for XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];
// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Select a cell and return the converted value
int cellValue = workSheet["A2"].IntValue;
// Read from ranges of cells elegantly.
foreach (var cell in workSheet["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Calculate aggregate values such as Min, Max and Sum
decimal sum = workSheet["A2:A10"].Sum();
// Linq compatible
decimal max = workSheet["A2:A10"].Max(c => c.DecimalValue);
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.
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.
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.
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-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:
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
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.
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#.
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 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