
Comment convertir un fichier CSV en liste en C#
Dans ce tutoriel pour débutants, nous allons voir comment lire des fichiers CSV dans une liste en C# en utilisant la bibliothèque IronXL. Eh bien, c'est l'une des choses les plus basiques que vous devez savoir dans n'importe quel langage de programmation, car les fichiers CSV sont un moyen très courant de stocker des données et de les transférer d'un système ou d'une application à un autre. Nous couvrirons tout, de la configuration de votre projet à l'analyse efficace des fichiers CSV.
How to Convert CSV File into List in C#
- Créez un projet de console C# dans Visual Studio.
- Installez la bibliothèque CSV C# en utilisant le gestionnaire de packages NuGet.
- Chargez le fichier CSV en utilisant la méthode
WorkBook.LoadCSV. - Lisez les valeurs de données du fichier et remplissez la liste.
- Imprimez la liste sur la console.
Configuration de votre projet
Étape 1 : Créer un nouveau projet C#
- Ouvrez Visual Studio : Lancez Visual Studio sur votre ordinateur.
- Créer un nouveau projet : Cliquez sur " Créer un nouveau projet ". Cela ouvre une fenêtre où vous pouvez sélectionner le type de projet.
- Sélectionnez le type de projet : Choisissez " Application console (.NET Core) " comme type de projet pour plus de simplicité.
- Nommez votre projet : Nommez votre projet CSVFileReader .
- Choisir l'emplacement : Sélectionnez un emplacement approprié sur votre appareil pour enregistrer ce projet.
- Générer le projet : Cliquez sur " Créer " pour initialiser votre nouveau projet C#.
Étape 2 : Installer la bibliothèque IronXL
-
Ouvrez le Gestionnaire de packages NuGet : dans Visual Studio, accédez au menu " Outils ", puis sélectionnez " Gestionnaire de packages NuGet " et choisissez " Gérer les packages NuGet pour la solution… ".
-
Recherchez IronXL: Cliquez sur l'onglet " Parcourir " et recherchez "IronXL.Excel ".

-
Installez IronXL: Trouvez le package IronXL dans les résultats de recherche, sélectionnez-le et cliquez sur " Installer ". Assurez-vous d'accepter les accords de licence et de prendre connaissance des modifications.
-
Vérifiez l'installation : après l'installation, vous devriez voir IronXL référencé dans les références de votre projet.
Maintenant, votre projet CSVFileReader est configuré avec la bibliothèque IronXL, et vous êtes prêt à commencer à lire et traiter des fichiers CSV en C#. Cette configuration forme la base des tâches de lecture CSV que nous entreprendrons dans les sections suivantes de ce tutoriel.
Parsing and Processing CSV Files in C#
Avec le projet configuré et la bibliothèque IronXL installée, concentrons-nous sur l'analyse et le traitement des fichiers CSV. Nous allons travailler dans le fichier Program.cs, qui est automatiquement généré dans votre projet CSVFileReader.
Étape 1 : Spécification du chemin du fichier
Avant de pouvoir lire des données, nous devons savoir où se trouve notre fichier CSV. Définissez une variable dans la méthode Main pour stocker le chemin du fichier.
string filename = "csvfile.csv"; // Replace with your actual file pathDim filename As String = "csvfile.csv" ' Replace with your actual file pathÉtape 2 : Chargement du fichier CSV
IronXL simplifie le chargement d'un fichier CSV. Utilisez la méthode WorkBook.LoadCSV pour lire le fichier CSV dans un objet WorkBook.
var csv = WorkBook.LoadCSV(filename);Dim csv = WorkBook.LoadCSV(filename)Étape 3 : Définition d'une structure de données
Créez une classe qui représente la structure de données dans votre fichier CSV. Par exemple, si votre CSV contient des informations sur les personnes, définissez une classe Person comme ceci :
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}Public Class Person
Public Property Name() As String
Public Property Age() As Integer
End ClassÉtape 4 : Analyse des données CSV
Dans cette étape, nous allons analyser le fichier CSV et remplir un List<Person> avec les données. Nous utilisons IronXL pour gérer la lecture des CSV, et l'essentiel est de traiter correctement chaque ligne ou ligne du CSV, en tenant compte des en-têtes et des éventuelles lignes vides. Voici une explication détaillée du code :
List<Person> people = new List<Person>();
bool isFirstRow = true; // Add a flag to check for the first row
foreach (var row in csv.WorkSheets[0].Rows)
{
if (isFirstRow)
{
isFirstRow = false; // Set the flag to false after skipping the first row
continue;
}
if (row.IsEmpty) continue; // Skip empty rows
var cells = row.ToArray();
var person = new Person()
{
Name = cells[0].StringValue,
Age = int.Parse(cells[1].StringValue) // Ensure this is a numeric value
};
people.Add(person);
}Dim people As New List(Of Person)()
Dim isFirstRow As Boolean = True ' Add a flag to check for the first row
For Each row In csv.WorkSheets(0).Rows
If isFirstRow Then
isFirstRow = False ' Set the flag to false after skipping the first row
Continue For
End If
If row.IsEmpty Then
Continue For ' Skip empty rows
End If
Dim cells = row.ToArray()
Dim person As New Person() With {
.Name = cells(0).StringValue,
.Age = Integer.Parse(cells(1).StringValue)
}
people.Add(person)
Next rowDans ce processus d'analyse, nous initialisons d'abord un List<Person> pour stocker les données analysées et utilisons un drapeau booléen isFirstRow pour ignorer la ligne d'en-tête du fichier CSV. La boucle foreach traverse chaque ligne du fichier CSV. Lors de la première itération, la ligne d'en-tête est identifiée et ignorée, garantissant que seules les lignes de données sont traitées. Nous vérifions ensuite chaque ligne pour nous assurer qu'elle n'est pas vide en utilisant row.IsEmpty. Cette étape est cruciale pour éviter les erreurs d'analyse avec les lignes vides.
Pour chaque ligne de données, nous convertissons la ligne en un tableau de cellules (row.ToArray()) puis créons un objet Person avec ces données. Il est crucial d'analyser et de convertir correctement les types de données, comme convertir la chaîne 'Age' en un entier. L'objet Person analysé est ensuite ajouté à notre liste people. Cette approche garantit que seules les lignes de données valides sont traitées et stockées, gérant efficacement les problèmes potentiels comme des chaînes non-numeriques dans des colonnes numériques ou des lignes vides inattendues.
Étape 5 : Affichage des données
Après avoir analysé les données CSV dans notre List<Person>, l'étape importante suivante est d'afficher et de vérifier les données. Cela non seulement aide à s'assurer que notre analyse a réussi, mais nous permet également d'observer la sortie et d'effectuer un contrôle rapide de la qualité des données. Voici comment vous pouvez mettre cela en œuvre :
foreach (var person in people)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}For Each person In people
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}")
Next personVoici le code complet de Program.cs :
using IronXL;
using System;
using System.Collections.Generic;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string[] args)
{
string filename = @"C:\Users\tayya\Downloads\sample_data.csv"; // Replace with your actual file path
var csv = WorkBook.LoadCSV(filename);
List<Person> people = new List<Person>();
bool isFirstRow = true; // Add a flag to check for the first row
foreach (var row in csv.WorkSheets[0].Rows)
{
if (isFirstRow)
{
isFirstRow = false; // Set the flag to false after skipping the first row
continue;
}
if (row.IsEmpty) continue; // Skip empty rows
var cells = row.ToArray();
var person = new Person()
{
Name = cells[0].StringValue,
Age = int.Parse(cells[1].StringValue) // Ensure this is a numeric value
};
people.Add(person);
}
foreach (var person in people)
{
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}
}Imports IronXL
Imports System
Imports System.Collections.Generic
Public Class Person
Public Property Name() As String
Public Property Age() As Integer
End Class
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim filename As String = "C:\Users\tayya\Downloads\sample_data.csv" ' Replace with your actual file path
Dim csv = WorkBook.LoadCSV(filename)
Dim people As New List(Of Person)()
Dim isFirstRow As Boolean = True ' Add a flag to check for the first row
For Each row In csv.WorkSheets(0).Rows
If isFirstRow Then
isFirstRow = False ' Set the flag to false after skipping the first row
Continue For
End If
If row.IsEmpty Then
Continue For ' Skip empty rows
End If
Dim cells = row.ToArray()
Dim person As New Person() With {
.Name = cells(0).StringValue,
.Age = Integer.Parse(cells(1).StringValue)
}
people.Add(person)
Next row
For Each person In people
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}")
Next person
End SubSortie du code
Lorsque vous exécutez le fichier, il affichera les données de la liste dans la console :

Gestion des différents types de données
Lors de la gestion de divers types de données dans un fichier CSV, il est important d'adapter la logique d'analyse au type spécifique de chaque colonne de données. Dans l'exemple de la classe Person, tandis que Name est une chaîne et peut être directement assignée en utilisant StringValue, les champs numériques comme Age nécessitent une conversion de chaîne en entier en utilisant Int32.Parse ou Convert.ToInt32. C'est essentiel pour éviter les erreurs de type.
Pour des types de données plus complexes, tels que les dates, utilisez DateTime.Parse pour convertir les représentations de chaînes de dates en objets DateTime. Il est important d'être conscient du format de date utilisé dans votre fichier CSV et de s'assurer qu'il correspond au format attendu dans votre code. Les formats de date incohérents peuvent entraîner des erreurs d'analyse ou une interprétation incorrecte des données.
Conclusion
Vous venez d'apprendre comment lire, analyser et afficher les données d'un fichier CSV en utilisant IronXL en C#. Cette approche peut être utilisée sur différents types de structures de données et de formats de fichier. Ainsi, cela représente une compétence utile globale pour chaque développeur se tournant vers C# comme langage principal.
IronXL offre une version d'essai gratuite permettant aux utilisateurs d'expérimenter ses fonctionnalités. Une fois la période d'essai terminée, la licence pour IronXL commence à un prix de départ de $999.
Gardez à l'esprit que les exceptions et les cas limites doivent être traités pour écrire un code plus robuste, en particulier lors de la gestion de différents types de données et de l'utilisation de fichiers volumineux. Continuez à expérimenter et à explorer plus de fonctionnalités d'IronXL pour améliorer le traitement de vos données en C#. Bonne programmation !

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.
Articles connexes



