UTILISATION D'IRONXL

Comment importer un fichier CSV dans une base de données en C# ?

Publié janvier 27, 2024
Partager:

Introduction

Bienvenue dans ce tutoriel pour débutants sur l'importation de fichiers CSV(valeurs séparées par des virgules) dans un fichierTableau de données en C# à l'aide deIronXL. Ce guide vous fournira une approche facile à suivre, garantissant que même si vous êtes novice en matière de C#, vous trouverez ce processus simple. Nous couvrirons toutes les étapes, de la mise en place de l'environnement à l'écriture du code source. À la fin de ce tutoriel, vous aurez bien compris comment convertir des données CSV en une table de données, gérer les colonnes de la table de données et traiter divers aspects des documents CSV en C# à l'aide d'un lecteur var et d'une chaîne de connexion.

Conditions préalables

Avant d'entrer dans le vif du sujet, assurez-vous d'avoir.. :

  • Connaissances de base en C#
  • Visual Studio installé sur votre machine locale
  • La bibliothèque IronXL, qui peut être obtenue via le gestionnaire de paquets NuGet

Comprendre les bases

Qu'est-ce qu'un fichier CSV ?

Un fichier CSV(Fichier de valeurs séparées par des virgules) est un type de fichier texte brut qui utilise une structure spécifique pour organiser les données tabulaires. Il s'agit d'un format courant pour l'échange de données, car le CSV est simple, compact et fonctionne avec de nombreuses plateformes. Dans un fichier CSV, les données sont séparées par des virgules, et chaque nouvelle ligne représente une nouvelle ligne, les en-têtes de colonne étant souvent présents dans la première ligne, int i.

Comprendre les tableaux de données dans C# ;

Une DataTable fait partie de la bibliothèque ADO.NET en C# et représente une table unique de données en mémoire. Il comprend des lignes et des colonnes et chaque colonne peut être d'un type de données différent. Les tableaux de données sont très flexibles et peuvent représenter les données dans un format structuré, ce qui les rend idéaux pour traiter les données des fichiers CSV.

Mise en place du projet

Étape 1 : Créer un nouveau projet C

  1. Ouvrez Visual Studio.

  2. Sélectionnez Fichier > Nouveau > Projet.

  3. Choisissez une application C# Console ou Windows Forms et donnez-lui un nom approprié.

Étape 2 : Installer IronXL

IronXL est une bibliothèque puissante qui vous permet detravailler avec Excel et des fichiers CSV en C#. Pour l'utiliser, vous devez l'installer via le gestionnaire de paquets NuGet. Dans Visual Studio :

  1. Allez dans Outils > NuGet Package Manager > Gestion des paquets NuGet pour la solution.

  2. Recherchez IronXL.Excel.

    Comment importer un CSV vers une table de données en C# : Figure 1 - IronXL

  3. Installez le paquet dans votre projet.

Lire des fichiers CSV dans des tableaux de données avec IronXL

Étape 1 : Mise en place de l'environnement

using IronXL;
using System.Data;
using IronXL;
using System.Data;
Imports IronXL
Imports System.Data
VB   C#

Ces déclarations utilisant incluent les espaces de noms nécessaires à notre tâche.

Étape 2 : Créer une méthode pour importer des fichiers CSV

Définir une classe, CsvToDataTable, avec une méthode statique ImportCsvToDataTable. Cette méthode est chargée de convertir le fichier CSV en Tableau de données.

public class CsvToDataTable
{
    public static DataTable ImportCsvToDataTable(string filePath)
    {
        // Code snippet to import CSV will be placed here
    }
}
public class CsvToDataTable
{
    public static DataTable ImportCsvToDataTable(string filePath)
    {
        // Code snippet to import CSV will be placed here
    }
}
Public Class CsvToDataTable
	Public Shared Function ImportCsvToDataTable(ByVal filePath As String) As DataTable
		' Code snippet to import CSV will be placed here
	End Function
End Class
VB   C#

Étape 3 : Charger le fichier CSV

Dans la méthode ImportCsvToDataTable, commencez par charger le fichier CSV. IronXL fournit une méthode directe pour ce faire :

// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath);
// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath);
' Load the CSV file
Dim workbook As WorkBook = WorkBook.LoadCSV(filePath)
VB   C#

WorkBook.LoadCSV est une méthode d'IronXL pour charger des fichiers CSV. Ici, filePath est le chemin d'accès à votre fichier CSV.

Étape 4 : Convertir CSV en DataTable

Convertir les données CSV chargées en Tableau de données. Cette étape est la plus importante car elle transforme les données dans un format qui peut être facilement manipulé et affiché dans une application C#.

// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert CSV worksheet to DataTable dt
DataTable dataTable = sheet.ToDataTable();
return dataTable;
// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert CSV worksheet to DataTable dt
DataTable dataTable = sheet.ToDataTable();
return dataTable;
' Get the first worksheet
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Convert CSV worksheet to DataTable dt
Dim dataTable As DataTable = sheet.ToDataTable()
Return dataTable
VB   C#

Cet extrait convertit les données CSV en Tableau de données. DefaultWorkSheet récupère la première feuille de travail du classeur, ce qui équivaut à l'ensemble des données CSV dans le cas d'un fichier CSV. La méthode ToDataTable est une fonctionnalité puissante d'IronXL qui permet de mapper efficacement les données CSV à une structure DataTable, y compris une ligne d'en-tête de chaîne de colonnes si elle est présente dans la première ligne du fichier CSV.

Étape 5 : Utiliser la méthode dans votre application

Utilisez maintenant la méthode ImportCsvToDataTable dans votre application. Par exemple, vous pouvez appeler cette méthode au démarrage de l'application ou lorsque l'utilisateur télécharge un fichier CSV.

// Usage
string csvFilePath = "csvfile.csv";
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath);
// Usage
string csvFilePath = "csvfile.csv";
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath);
' Usage
Dim csvFilePath As String = "csvfile.csv"
Dim dataTable As DataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath)
VB   C#

Cet extrait de code montre comment appeler la méthode ImportCsvToDataTable. Remplacez "csvfile.csv " par le chemin d'accès réel de votre fichier CSV.

Étape 6 : Utilisation du tableau de données de sortie

Une fois que vous avez la Table de données, vous pouvez effectuer diverses opérations telles que l'affichage des données dans une interface utilisateur, le filtrage ou le traitement des données. Voici quelques exemples :

Affichage de données dans une application console

foreach (DataRow row in dataTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item} ");
    }
    Console.WriteLine();
}
foreach (DataRow row in dataTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item} ");
    }
    Console.WriteLine();
}
For Each row As DataRow In dataTable.Rows
	For Each item In row.ItemArray
		Console.Write($"{item} ")
	Next item
	Console.WriteLine()
Next row
VB   C#

Ce code parcourt chaque ligne et chaque colonne du Tableau de données et imprime les données sur la console.

Filtrage des données

Vous pouvez utiliser LINQ pour filtrer les données de la table de données. Par exemple, si vous souhaitez sélectionner les lignes pour lesquelles une colonne spécifique remplit une condition :

var filteredRows = dataTable.AsEnumerable()
                            .Where(row => row.Field<string>("ColumnName") == "SomeValue");
var filteredRows = dataTable.AsEnumerable()
                            .Where(row => row.Field<string>("ColumnName") == "SomeValue");
Dim filteredRows = dataTable.AsEnumerable().Where(Function(row) row.Field(Of String)("ColumnName") = "SomeValue")
VB   C#

Remplacez "ColumnName " et "SomeValue " par le nom de la colonne et la valeur que vous souhaitez filtrer.

Extrait de code complet

Voici le code source complet que vous pouvez utiliser dans votre projet :

using IronXL;
using System;
using System.Data;
using System.IO;
public class CsvToDataTable
{
    public static DataTable ImportCsvToDataTable(string filePath)
    {
        // Check if the file exists
        if (!File.Exists(filePath))
        {
            throw new FileNotFoundException($"The file at {filePath} was not found.");
        }
        // Load the CSV file
        WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");
        // Get the first worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;
        // Convert the worksheet to DataTable
        DataTable dataTable = sheet.ToDataTable();
        return dataTable;
    }
}
class Program
{
    static void Main(string [] args)
    {
        // Usage
        try
        {
            string strfilepath = "sample_data.csv"; // CSV file path
            DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(strfilepath);
            foreach (DataRow row in dataTable.Rows)
            {
                foreach (var item in row.ItemArray)
                {
                    Console.Write($"{item} ");
                }
                Console.WriteLine();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
using IronXL;
using System;
using System.Data;
using System.IO;
public class CsvToDataTable
{
    public static DataTable ImportCsvToDataTable(string filePath)
    {
        // Check if the file exists
        if (!File.Exists(filePath))
        {
            throw new FileNotFoundException($"The file at {filePath} was not found.");
        }
        // Load the CSV file
        WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");
        // Get the first worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;
        // Convert the worksheet to DataTable
        DataTable dataTable = sheet.ToDataTable();
        return dataTable;
    }
}
class Program
{
    static void Main(string [] args)
    {
        // Usage
        try
        {
            string strfilepath = "sample_data.csv"; // CSV file path
            DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(strfilepath);
            foreach (DataRow row in dataTable.Rows)
            {
                foreach (var item in row.ItemArray)
                {
                    Console.Write($"{item} ");
                }
                Console.WriteLine();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
Imports IronXL
Imports System
Imports System.Data
Imports System.IO
Public Class CsvToDataTable
	Public Shared Function ImportCsvToDataTable(ByVal filePath As String) As DataTable
		' Check if the file exists
		If Not File.Exists(filePath) Then
			Throw New FileNotFoundException($"The file at {filePath} was not found.")
		End If
		' Load the CSV file
		Dim workbook As WorkBook = WorkBook.LoadCSV(filePath, listDelimiter:= ";")
		' Get the first worksheet
		Dim sheet As WorkSheet = workbook.DefaultWorkSheet
		' Convert the worksheet to DataTable
		Dim dataTable As DataTable = sheet.ToDataTable()
		Return dataTable
	End Function
End Class
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Usage
		Try
			Dim strfilepath As String = "sample_data.csv" ' CSV file path
			Dim dataTable As DataTable = CsvToDataTable.ImportCsvToDataTable(strfilepath)
			For Each row As DataRow In dataTable.Rows
				For Each item In row.ItemArray
					Console.Write($"{item} ")
				Next item
				Console.WriteLine()
			Next row
		Catch ex As Exception
			Console.WriteLine($"An error occurred: {ex.Message}")
		End Try
	End Sub
End Class
VB   C#

Vous pouvez utiliser ce code dans le fichier Program.cs. N'oubliez pas d'ajouter la licence d'IronXL si vous travaillez dans un environnement de production.

Sortie du code

Une fois le code exécuté, il chargera le fichier CSV et importera ses données dans le tableau de données. Ensuite, il affichera le contenu des colonnes de la table de données dans la console. Il permet de vérifier que les données sont correctement importées dans le tableau de données.

Comment importer un fichier CSV dans une base de données en C# : Figure 2 - Sortie

Gestion de différents scénarios

Dans le monde réel, le format et la structure des fichiers CSV peuvent varier considérablement. Il est important de gérer ces variations pour garantir la robustesse et la polyvalence de votre application. Voyons comment gérer différents scénarios lors de l'importation de données CSV dans une table de données à l'aide d'IronXL.

Traitement d'un délimiteur différent

Les virgules sont la valeur par défaut du délimiteur dans les fichiers CSV. Toutefois, les fichiers CSV n'utilisent pas toujours des virgules pour séparer les valeurs. Parfois, un point-virgule, une tabulation ou d'autres caractères sont utilisés comme délimiteurs. Pour gérer cela dans IronXL :

Spécifier un délimiteur personnalisé: Avant de charger le fichier CSV, vous pouvez spécifier le délimiteur de votre fichier. Par exemple, si votre fichier utilise un point-virgule(;)vous pouvez le paramétrer comme suit :

WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");
WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");
Dim workbook As WorkBook = WorkBook.LoadCSV(filePath, listDelimiter:= ";")
VB   C#

Détection dynamique du délimiteur: Vous pouvez également écrire une fonction qui détecte le délimiteur de manière dynamique. Pour ce faire, il suffit d'analyser les premières lignes du fichier et de déterminer le caractère spécial le plus fréquent.

Traitement de fichiers CSV volumineux

Lorsqu'il s'agit de fichiers CSV volumineux, il est important de tenir compte de l'utilisation de la mémoire et des performances. IronXL offre des moyens efficaces de traiter les fichiers volumineux sans charger l'intégralité du fichier en mémoire en une seule fois. Vous pouvez lire le fichier par morceaux ou utiliser les API de lecture en continu fournies par IronXL pour gérer efficacement l'utilisation de la mémoire.

Conclusion

L'importation de données CSV dans une table de données à l'aide d'IronXL en C# est simple. Il améliore les capacités de manipulation de données de votre application, en vous permettant de traiter efficacement les fichiers CSV. Grâce aux étapes décrites dans ce tutoriel, les débutants peuvent facilement intégrer cette fonctionnalité dans leurs projets C#.

IronXL propose une version d'essai gratuite pour permettre aux utilisateurs d'explorer ses fonctionnalités. Pour ceux qui recherchent des capacités et un support plus avancés, les options de licence commencent à $749.

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