Analyser le fichier CSV en C#
-
Analyser le fichier CSV avec la classe
TextFieldParser
enC#
-
Analyser un fichier CSV avec la bibliothèque
FileHelpers
enC#
Ce tutoriel abordera les méthodes pour analyser un fichier CSV en C#.
Analyser le fichier CSV avec la classe TextFieldParser
en C#
Pour utiliser la classe TextFieldParser
, nous devons référencer le Microsoft.VisualBasic.dll
dans notre code C#. La classe TextFieldParser
contient de nombreuses méthodes d’analyse des fichiers texte structurés en C#. On peut lire un fichier CSV avec la classe TextFieldParser
en mettant les délimiteurs à ,
avec la fonction SetDelimiters()
à l’intérieur de la classe TextFieldParser
. L’exemple de code suivant nous montre comment analyser un fichier CSV avec la classe TextFieldParser
en C#.
# cCopyusing 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();
}
}
}
}
}
Dans le code ci-dessus, nous avons initialisé l’instance textFieldParser
de la classe TextFieldParser
en spécifiant le chemin de notre fichier CSV dans le constructeur. Nous définissons ensuite notre type de champ texte à délimiter avec la fonction textFieldParser.TextFieldType = FieldType.Delimited
et définissons ,
comme délimiteur avec la fonction textFieldParser.SetDelimiter(',')
. Nous avons ensuite utilisé une boucle while
pour lire le fichier CSV jusqu’à la fin avec le textFieldParser.EndofData
. Nous avons stocké les données dans un tableau de chaînes avec la fonction ReadFields()
.
Analyser un fichier CSV avec la bibliothèque FileHelpers
en C#
La bibliothèque FileHelpers
est utilisée pour lire et écrire des données dans des fichiers, des flux et des chaînes en C#. C’est une bibliothèque tierce et n’est pas pré-installée avec le framework .NET
. Nous pouvons facilement l’installer en le recherchant dans le gestionnaire de packages NuGet dans l’IDE de Visual Studio. Nous pouvons utiliser la classe FileHelpersEngine
pour analyser les données d’un fichier CSV en C#. La classe FileHelperEngine
récupère les données du fichier dans des objets de classe en C#. Donc, nous devons d’abord créer une classe de modèle qui peut contenir nos données à partir du fichier. La classe contiendrait des champs qui représentent des colonnes dans le fichier CSV. On peut utiliser le [DelimitedRecord(",")]
pour spécifier que le ,
est utilisé ici comme délimiteur. Nous pouvons utiliser la fonction ReadFile(path)
pour lire des données dans un tableau d’objets de classe à partir du fichier dans le chemin spécifié. L’exemple de code suivant nous montre comment analyser un fichier CSV avec la bibliothèque FileHelpers
en C#.
# cCopyusing 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);
}
}
}
}
Production:
# cCopyName Age MMA 22 SDA 19 SHA 11
Dans le code ci-dessus, nous lisons les données à l’intérieur du fichier C:\File\records.csv
et les sauvegardons dans un tableau d’objets de la classe Record
avec la bibliothèque FileHelpers
en 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