UTILISATION D'IRONXL

Comment convertir un fichier CSV en liste en C#

Publié janvier 27, 2024
Partager:

Dans ce tutoriel pour débutants, nous allons voir commentlire les fichiers CSV en unliste en C# en utilisant leIronXL bibliothèque. Il s'agit de l'une des choses les plus élémentaires 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 à l'autre. Nous couvrirons tous les aspects, de la configuration de votre projet à l'analyse efficace des fichiers CSV.

Comment convertir un fichier CSV en liste dans C&num ;

  1. Créer un projet de console C# dans Visual Studio.

  2. Installez la bibliothèque CSV C# à l'aide du gestionnaire de paquets NuGet.

  3. Chargez le fichier CSV en utilisant la méthode WorkBook.LoadCSV.

  4. Lire les données du fichier et remplir la liste.

  5. Imprimer la liste sur la console.

Mise en place du projet

Étape 1 : Création d'un nouveau projet C

  1. Ouvrez Visual Studio : Démarrez Visual Studio sur votre ordinateur.

  2. Créer un nouveau projet : Cliquez sur "Créer un nouveau projet". Une fenêtre s'ouvre, dans laquelle vous pouvez sélectionner le type de projet.

  3. Sélectionnez le type de projet : Choisissez "Console App(.NET Core)le type de projet doit être défini comme "projet" pour plus de simplicité.

  4. Nommez votre projet : Nommez votre projet CSVFileReader.

  5. Choisissez l'emplacement : Sélectionnez un emplacement approprié sur votre appareil pour enregistrer ce projet.

  6. Générer le projet : Cliquez sur "Créer" pour initialiser votre nouveau projet C#.

Étape 2 : Installation de la bibliothèque IronXL

  1. Ouvrez le gestionnaire de paquets NuGet : Dans Visual Studio, allez dans le menu "Outils", puis sélectionnez "NuGet Package Manager" et choisissez "Gérer les paquets NuGet pour la solution...".

  2. Recherchez IronXL : Cliquez sur l'onglet "Parcourir" et recherchez "IronXL.Excel"

    Comment convertir un fichier CSV en liste en C# : Figure 1 - IronXL

  3. Installer IronXL : Trouvez le paquet IronXL dans les résultats de la recherche, sélectionnez-le et cliquez sur "Installer" Assurez-vous d'accepter les accords de licence et vérifiez les changements.

  4. 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 constitue la base des tâches de lecture de fichiers CSV que nous entreprendrons dans les sections suivantes de ce tutoriel.

Analyse et traitement des fichiers CSV en C# ;

Une fois le projet mis en place 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 d'accès au fichier

Avant de pouvoir lire des données, nous devons savoir où se trouve notre fichier CSV. Définir une variable dans la méthode Main pour stocker le chemin du fichier.

string filename = "csvfile.csv"; // Replace with your actual file path
string filename = "csvfile.csv"; // Replace with your actual file path

Étape 2 : Chargement du fichier CSV

IronXL facilite 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);
var 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 de votre fichier CSV. Par exemple, si votre fichier CSV contient des informations sur des personnes, définissez une classe Person comme suit :

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

Étape 4 : Analyse des données CSV

Dans cette étape, nous allons analyser le fichier CSV et remplir une "liste"` avec les données. Nous utilisons IronXL pour gérer la lecture du CSV, et la clé est de traiter correctement chaque ligne ou var ligne du CSV, en tenant compte des en-têtes et de toutes les lignes vides potentielles. Voici une description 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);
}
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);
}

Dans ce processus d'analyse, nous initialisons d'abord une Liste<Person> pour stocker les données analysées et utiliser un indicateur booléen isFirstRow pour sauter la ligne d'en-tête du fichier CSV. La boucle foreach parcourt chaque ligne du fichier CSV. Lors de la première itération, la ligne d'en-tête est identifiée et ignorée, ce qui garantit que seules les lignes de données sont traitées. Nous vérifions ensuite que chaque ligne n'est pas vide en utilisant row.IsEmpty. Cette étape est essentielle pour éviter les erreurs d'analyse des lignes vides.

Pour chaque ligne de données, nous convertissons la ligne en un tableau de cellules(row.ToArray()) et crée ensuite un objet Person avec ces données. Il est essentiel d'analyser et de convertir correctement les types de données, par exemple en convertissant la chaîne "Age" en un nombre entier. L'objet Personne analysé est alors ajouté à notre liste people. Cette approche garantit que seules les lignes de données valides sont traitées et stockées, ce qui permet de gérer efficacement les problèmes potentiels tels que les chaînes non numériques dans les colonnes numériques ou les lignes vides inattendues.

Étape 5 : Affichage des données

Après avoir analysé les données CSV dans notre List<Person>, l'étape suivante consiste à afficher et à vérifier les données. Cela permet non seulement de s'assurer que l'analyse est réussie, mais aussi d'observer le résultat 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}");
}
foreach (var person in people)
{
    Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}

Voici le code complet de Program.cs :

using IronXL;

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}");
        }
    }
}
using IronXL;

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}");
        }
    }
}

Sortie du code

Lorsque vous exécutez le fichier, il affiche les données de la liste dans la console :

Comment convertir un fichier CSV en liste en C# : Figure 2 - Sortie de la liste

Traitement de différents types de données

Lorsque l'on traite différents 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, alors que le Name est une chaîne de caractères et peut être directement assigné 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. Ceci est essentiel pour éviter les erreurs de correspondance de type.

Pour les types de données plus complexes, comme les dates, utilisez DateTime.Parse pour convertir les représentations de chaînes de caractères des dates en objets DateTime. Il est important de connaître le format de date utilisé dans votre fichier CSV et de veiller à ce qu'il corresponde au format attendu dans votre code. Des 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 à lire, analyser et afficher les données d'un fichier CSV à l'aide d'IronXL en C#. Cette approche peut être utilisée pour différents types de structures de données et de formats de fichiers. Il s'agit donc d'une compétence globalement utile pour tous les développeurs qui choisissent C# comme langage principal.

IronXL offre uneessai gratuit pour que les utilisateurs puissent expérimenter ses fonctionnalités. Une fois la période d'essai terminée, la licence pour IronXL commence au prix de $749.

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 d'autres fonctionnalités d'IronXL pour améliorer le traitement de vos données en C#. Bon codage!

< PRÉCÉDENT
Comment importer un fichier CSV dans une base de données en C# ?
SUIVANT >
Comment enregistrer un fichier Excel en VB .NET