CSV-Datei parsen in C#

Muhammad Maisam Abbas 16 Februar 2024
  1. Analysieren Sie die CSV-Datei mit der Klasse TextFieldParser in C#
  2. Analysieren Sie die CSV-Datei mit der Bibliothek FileHelpers in C#
CSV-Datei parsen in C#

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#.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Verwandter Artikel - Csharp CSV