UTILISATION D'IRONXL

Comment convertir un ensemble de données en CSV en C#

Regan Pun
Regan Pun
avril 18, 2023
Mise à jour février 20, 2024
Partager:

L'article suivant montre comment convertir un ensemble de données C# en fichier CSV.

IronXL est une excellente solution pour travailler avec des feuilles de calcul, que ce soit au format CSV ou dans des fichiers Excel. IronXL est libre de développement, facile à utiliser et offre des fonctionnalités étendues pour travailler avec n'importe quel type de feuille de calcul. Il est sûr et très performant. Avant d'aller plus loin, présentons brièvement IronXL.

IronXL

IronXL est une bibliothèque Iron Software qui permet aux développeurs C# de lire, générer et modifier des fichiers Excel (et autres fichiers de tableur) dans des applications et sites web .NET.

IronXL est un moyen rapide et facile de travailler avec Excel et d'autres fichiers de feuilles de calcul en C# et .NET. IronXL fonctionne bien avec .NET Framework, .NET Core et Azure sans qu'il soit nécessaire de recourir à Office Excel Interopm. IronXL ne nécessite pas non plus l'installation de Microsoft Office ni d'autres dépendances de ce type.

Passons maintenant à la création et à l'écriture du code permettant de créer un fichier CSV pour un ensemble de données.

Créer un nouveau projet Visual Studio

Ouvrez l'IDE Visual Studio ; la dernière version de Visual Studio est recommandée, mais vous pouvez utiliser n'importe quelle version selon vos préférences. Veuillez noter que les étapes de création d'un nouveau projet peuvent différer d'une version à l'autre.

Comment convertir un ensemble de données en CSV en C#, Figure 1 : Fenêtre de démarrage de Visual Studio

Fenêtre de démarrage de Visual Studio

Cliquez sur Créer un nouveau projet. Une nouvelle fenêtre apparaît comme indiqué ci-dessous.

Comment convertir un ensemble de données en CSV en C#, Figure 2 : Créer un nouveau projet dans Visual Studio

Créer un nouveau projet dans Visual Studio

Sélectionnez votre modèle de projet préféré dans la liste. Cliquez sur le bouton Suivant, et une nouvelle fenêtre apparaîtra comme indiqué ci-dessous.

Comment convertir un ensemble de données en CSV en C#, Figure 3 : Configurer le projet nouvellement créé

Configurer le projet nouvellement créé

Nommez votre projet, sélectionnez son emplacement, puis appuyez sur le bouton Suivant. Une nouvelle fenêtre apparaît comme indiqué ci-dessous.

Comment convertir un ensemble de données en CSV en C#, Figure 4 : Sélectionner une version de .NET Framework

Sélectionnez une version du .NET Framework

Sélectionnez votre Framework .NET cible. Vous pouvez choisir n'importe quel Framework .NET qui correspond à vos besoins, car IronXL prend en charge tous les Framework .NET. Ce tutoriel utilisera .NET 7. Cliquez sur le bouton Create, et un nouveau projet sera créé, comme indiqué ci-dessous.

Comment convertir un jeu de données en CSV en C#, Figure 5 : une nouvelle application console dans Visual Studio

une nouvelle Application Console dans Visual Studio

Installez maintenant le paquet NuGet IronXL pour l'utiliser dans cette application.

Installer IronXL

Ouvrez la console du gestionnaire de paquets NuGet et entrez la commande suivante.

Install-Package IronXL.Excel

Le package NuGet sera installé et prêt à l'emploi comme indiqué ci-dessous.

Comment convertir un ensemble de données en CSV en C#, Figure 6 : L'installation du package IronXL et de ses dépendances de package

L'installation du package IronXL et de ses dépendances de package

Maintenant, écrivons un peu de code pour convertir un ensemble de données en un fichier CSV en C#.

Cet exemple permet d'alimenter les données d'une base de données SQL Server. Après avoir obtenu l'ensemble des données de la base de données SQL, nous allons créer un fichier CSV en utilisant ces données d'entrée.

Créer le tableau de données

La première étape consiste à alimenter les données à partir de SQL, mais vous pouvez utiliser n'importe quelle source de données.

Ce tutoriel utilise les données suivantes :

Comment convertir un jeu de données en CSV en C#, Figure 7 : Créer une nouvelle base de données avec des données d'exemple

Créer une nouvelle base de données avec des données d'exemple

Voici le script SQL qui permet de créer les données de l'échantillon :

USE Test_DB

Create Table STUDENT_DATA
(
    REG_NUM INT PRIMARY KEY,
    FIRST_NAME VARCHAR(30),
    LAST_NAME VARCHAR(30),
    CLASS VARCHAR(5),
    CONTACT_NUM VARCHAR(15)
);

INSERT INTO STUDENT_DATA
VALUES
(123, 'JHON', 'SMITH', '2', '(223) 444-1234'),
(124, 'THOMAS', 'CHARLES', '2', '(332) 555-1235'),
(125, 'WILLIAM', 'RICHARD', '2', '(432) 666-1236'),
(126, 'JAMES', 'BOND', '2', '(543) 777-1237'),
(127, 'CRISTOPHER', 'MICHAL', '2', '(555) 999-1238'),
(128, 'DONALD', 'MARK', '2', '(777) 888-1239');

Le code C# suivant est utilisé pour exporter le tableau de données vers un fichier CSV.

public static DataTable getData()
{
    string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
    string query = "select * from STUDENT_DATA";
    try
    {
        SqlConnection conn = new SqlConnection(connString);
        SqlCommand cmd = new SqlCommand(query, conn);
        conn.Open();
        // create data adapter
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        // this will query your database and return the result to your datatable
        DataTable dt = new DataTable();
        da.Fill(dt);
        da.Dispose();
        return dt;
    } catch(Exception)
    {
        throw;
    }
}

static void Main(string [] args)
{
    DataTable table = getData();
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    wb.Metadata.Author = "JOHN";
    WorkSheet ws = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        ws ["A" + (rowCount)].Value = row [0].ToString();
        ws ["B" + (rowCount)].Value = row [1].ToString();
        ws ["C" + (rowCount)].Value = row [2].ToString();
        ws ["D" + (rowCount)].Value = row [3].ToString();
        ws ["E" + (rowCount)].Value = row [4].ToString();
        rowCount++;
    }
    wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv"); // 
}
public static DataTable getData()
{
    string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
    string query = "select * from STUDENT_DATA";
    try
    {
        SqlConnection conn = new SqlConnection(connString);
        SqlCommand cmd = new SqlCommand(query, conn);
        conn.Open();
        // create data adapter
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        // this will query your database and return the result to your datatable
        DataTable dt = new DataTable();
        da.Fill(dt);
        da.Dispose();
        return dt;
    } catch(Exception)
    {
        throw;
    }
}

static void Main(string [] args)
{
    DataTable table = getData();
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    wb.Metadata.Author = "JOHN";
    WorkSheet ws = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        ws ["A" + (rowCount)].Value = row [0].ToString();
        ws ["B" + (rowCount)].Value = row [1].ToString();
        ws ["C" + (rowCount)].Value = row [2].ToString();
        ws ["D" + (rowCount)].Value = row [3].ToString();
        ws ["E" + (rowCount)].Value = row [4].ToString();
        rowCount++;
    }
    wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv"); // 
}
Public Shared Function getData() As DataTable
	Dim connString As String = "server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;"
	Dim query As String = "select * from STUDENT_DATA"
	Try
		Dim conn As New SqlConnection(connString)
		Dim cmd As New SqlCommand(query, conn)
		conn.Open()
		' create data adapter
		Dim da As New SqlDataAdapter(cmd)
		' this will query your database and return the result to your datatable
		Dim dt As New DataTable()
		da.Fill(dt)
		da.Dispose()
		Return dt
	Catch e1 As Exception
		Throw
	End Try
End Function

Shared Sub Main(ByVal args() As String)
	Dim table As DataTable = getData()
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
	wb.Metadata.Author = "JOHN"
	Dim ws As WorkSheet = wb.DefaultWorkSheet
	Dim rowCount As Integer = 1
	For Each row As DataRow In table.Rows
		ws ("A" & (rowCount)).Value = row (0).ToString()
		ws ("B" & (rowCount)).Value = row (1).ToString()
		ws ("C" & (rowCount)).Value = row (2).ToString()
		ws ("D" & (rowCount)).Value = row (3).ToString()
		ws ("E" & (rowCount)).Value = row (4).ToString()
		rowCount += 1
	Next row
	wb.SaveAsCsv("D:\Tutorial Project\Save_DataTable_CSV.csv")
End Sub
$vbLabelText   $csharpLabel

Explication du code

La méthode getData() récupérera des données d'une base de données SQL Server, comme discuté précédemment.

Dans la fonction principale, il créera un WorkBook en utilisant IronXL et ensuite créera un WorkSheet.

Dans une boucle for, les données seront remplies dans les lignes de la feuille de calcul donnée.

Ensuite, enregistrez ce fichier en tant que CSV en utilisant la fonction SaveAsCsv fournie par IronXL.

Sortie

Le fichier CSV généré par ce programme est le suivant :

Comment convertir un ensemble de données en CSV en C#, Figure 8 : Le fichier de sortie CSV

Le fichier de sortie CSV

Il est clair que le fichier CSV est généré correctement et qu'il correspond aux données fournies.

Résumé

Cet article a montré comment créer un fichier CSV en C# à partir d'un ensemble de données. La bibliothèque peut également lire les fichiers CSV en utilisant C#. L'ensemble des données provenant d'une base de données SQL Server est rempli et créé un fichier CSV en trois étapes :

  1. Obtenir des données du serveur SQL.

  2. Introduire des données dans un tableau de données.

  3. Créez un fichier CSV à partir de ce tableau de données.

    Il est très facile de créer un fichier CSV dans .NET 7 à l'aide d'IronXL, comme démontré ci-dessus. La performance du programme est exceptionnelle car il est écrit en .NET 7 avec IronXL. IronXL offre d'autres fonctions utiles telles que la création, la lecture et la manipulation de fichiers Excel. Pour plus de détails, veuillez visiter la documentation officielle.

    De plus, IronPDF offre aux développeurs des méthodes pour rendre les documents PDF en images et extraire le texte et le contenu d'un PDF. De plus, IronPDF est également capable de rendre des graphiques dans des PDFs, d'ajouter des codes-barres, et d'améliorer la sécurité avec des mots de passe par programmation.

    La version gratuite d'IronXL est utilisée à des fins de développement. Pour déployer une application en production, veuillez obtenir une version d'essai gratuite ou une licence commerciale. IronXL fait partie de Iron Suite, qui se compose de cinq bibliothèques :

  4. IronXL, qui est exploré aujourd'hui.

  5. IronPDF pour générer, lire et manipuler des fichiers PDF

  6. IronOCR pour extraire le texte des images

  7. IronBarcode pour lire et générer des codes-barres

  8. IronWebScraper pour extraire des données structurées à partir de sites web.

    Vous pouvez obtenir tous ces produits pour le prix de deux s'ils sont achetés ensemble.

Regan Pun
Ingénieur logiciel
Regan est diplômé de l'université de Reading, où il a obtenu une licence en ingénierie électronique. Avant de rejoindre Iron Software, il s'était concentré sur une seule tâche. Ce qu'il apprécie le plus chez Iron Software, c'est la diversité des tâches qu'il peut accomplir, qu'il s'agisse d'apporter une valeur ajoutée aux ventes, à l'assistance technique, au développement de produits ou à la commercialisation. Il aime comprendre comment les développeurs utilisent la bibliothèque d'Iron Software et utiliser ces connaissances pour améliorer continuellement la documentation et développer les produits.
< PRÉCÉDENT
Comment importer un fichier Excel en C#
SUIVANT >
Comment écrire dans un fichier Excel en VB.NET