CSV-Datei parsen in C#
-
Analysieren Sie die CSV-Datei mit der Klasse
TextFieldParser
inC#
-
Analysieren Sie die CSV-Datei mit der Bibliothek
FileHelpers
inC#
In diesem Tutorial werden die Methoden zum Parsen einer CSV-Datei in C# erläutert.
Analysieren Sie die CSV-Datei mit der Klasse TextFieldParser
in C#
Um die TextFieldParser
-Klasse zu verwenden, müssen wir in unserem C# -Code auf die Microsoft.VisualBasic.dll
verweisen. Die Klasse TextFieldParser
enthält viele Methoden zum Parsen strukturierter Textdateien in C#. Wir können eine CSV-Datei mit der Klasse TextFieldParser
lesen, indem wir die Begrenzungszeichen mit der Funktion SetDelimiters()
innerhalb der Klasse TextFieldParser
auf ,
setzen. Das folgende Code-Beispiel zeigt uns, wie wir eine CSV-Datei mit der Klasse TextFieldParser
in C# analysieren können.
using System;
using Microsoft.VisualBasic.FileIO;
namespace parse_csv {
class Program {
static void Main(string[] args) {
using (TextFieldParser textFieldParser = new TextFieldParser(@"C:\File\Sheet1.csv")) {
textFieldParser.TextFieldType = FieldType.Delimited;
textFieldParser.SetDelimiters(",");
while (!textFieldParser.EndOfData) {
string[] rows = textFieldParser.ReadFields();
}
}
}
}
}
Im obigen Code haben wir die Instanz TextFieldParser
der Klasse TextFieldParser
initialisiert, indem wir den Pfad zu unserer CSV-Datei im Konstruktor angegeben haben. Wir setzen dann unseren Textfeldtyp so, dass er mit der Funktion textFieldParser.TextFieldType = FieldType.Delimited
begrenzt wird, und setzen ,
als Begrenzer mit der Funktion textFieldParser.SetDelimiter(',')
. Wir haben dann eine while
-Schleife verwendet, um die CSV-Datei mit textFieldParser.EndofData
bis zum Ende zu lesen. Wir haben die Daten in einem Array von Strings mit der Funktion ReadFields()
gespeichert.
Analysieren Sie die CSV-Datei mit der Bibliothek FileHelpers
in C#
Die Bibliothek FileHelpers
wird zum Lesen und Schreiben von Daten in Dateien, Streams und Zeichenketten in C# verwendet. Es handelt sich um eine Bibliothek eines Drittanbieters, auf der das Framework .NET
nicht vorinstalliert ist. Wir können es einfach installieren, indem wir es im NuGet-Paketmanager in der Visual Studio-IDE suchen. Wir können die Klasse FileHelpersEngine
verwenden, um Daten aus einer CSV-Datei in C# zu analysieren. Die Klasse FileHelperEngine
ruft die Daten aus der Datei in Klassenobjekte in C# ab. Wir müssen also zuerst eine Modellklasse erstellen, die unsere Daten aus der Datei enthalten kann. Die Klasse würde Felder enthalten, die Spalten in der CSV-Datei darstellen. Wir können das [DelimitedRecord(",")]
verwenden, um anzugeben, dass das ,
hier als Trennzeichen verwendet wird. Mit der Funktion ReadFile(path)
können wir Daten in einem Array von Klassenobjekten aus der Datei im angegebenen Pfad lesen. Das folgende Codebeispiel zeigt, wie eine CSV-Datei mit der Bibliothek FileHelpers
in C# analysiert wird.
using FileHelpers;
using System;
namespace parse_csv {
[DelimitedRecord(",")]
public class Record {
public string Name;
public string Age;
}
class Program {
static void Main(string[] args) {
var fileHelperEngine = new FileHelperEngine<Record>();
var records = fileHelperEngine.ReadFile(@"C:\File\records.csv");
foreach (var record in records) {
Console.WriteLine(record.Name);
Console.WriteLine(record.Age);
}
}
}
}
Ausgabe:
Name
Age
MMA
22
SDA
19
SHA
11
Im obigen Code lesen wir die Daten in der Datei C:\File\records.csv
und speichern sie in einem Array von Objekten der Klasse Record
mit der Bibliothek FileHelpers
in C#.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn