Passer au contenu du pied de page
UTILISATION D'IRONXL

Comment convertir un dataset en CSV en C#

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

IronXL est une excellente solution pour travailler avec des feuilles de calcul, que ce soit au format CSV ou avec des fichiers Excel. IronXL est gratuit pour le développement, facile à utiliser, et offre des fonctionnalités étendues pour travailler avec tout type de feuille de calcul. Il est sécurisé et offre de hautes performances. Avant de continuer, prenons un bref aperçu d'IronXL.

IronXL

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

IronXL est un moyen rapide et facile de travailler avec des fichiers Excel et autres feuilles de calcul en C# et .NET. IronXL fonctionne bien avec .NET Framework, .NET Core, et Azure sans la nécessité d'Office Excel Interop. IronXL ne nécessite pas non plus l'installation de Microsoft Office ni d'autres dépendances similaires.

Passons maintenant à la création et à la rédaction du code pour 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 en utiliser une autre selon votre préférence. Veuillez noter que les étapes pour créer un nouveau projet peuvent varier d'une version à l'autre.

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

Cliquez sur Créer un nouveau projet. Une nouvelle fenêtre apparaîtra comme montré 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, et appuyez sur le bouton Suivant. Une nouvelle fenêtre apparaîtra comme montré ci-dessous.

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

Sélectionnez votre cible .NET Framework. Vous pouvez sélectionner toute version de .NET Framework qui répond à vos besoins, car IronXL prend en charge tous les .NET Framework. Ce tutoriel utilisera .NET 7. Cliquez sur le bouton Créer, et un nouveau projet sera créé, comme indiqué ci-dessous.

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

À présent, installez le package NuGet IronXL pour l'utiliser dans cette application.

Installer IronXL

Ouvrez la console du gestionnaire de packages 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 L'installation du package IronXL et de ses dépendances

Passons maintenant à écrire du code pour convertir un ensemble de données en fichier CSV en C#.

Cet exemple va extraire des données d'une base de données SQL Server. Après avoir récupéré l'ensemble de données de la base de données SQL, nous allons créer un fichier CSV à partir de ces données d'entrée.

Créer le tableau de données

La première étape consiste à extraire des données de SQL, mais vous pouvez utiliser toute source de données de votre choix.

Ce tutoriel utilise les données suivantes :

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

Voici le script SQL pour créer les données d'é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.

using System;
using System.Data;
using System.Data.SqlClient;
using IronXL;

class Program
{
    // Method to retrieve data from SQL database and return as DataTable
    public static DataTable GetData()
    {
        // Define connection string (modify accordingly for your local server)
        string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
        string query = "SELECT * FROM STUDENT_DATA";

        try
        {
            // Create SQL connection
            using SqlConnection conn = new SqlConnection(connString);
            // Create SQL command
            SqlCommand cmd = new SqlCommand(query, conn);
            conn.Open();
            // Create data adapter
            using SqlDataAdapter da = new SqlDataAdapter(cmd);
            // Query the database and return the result to a data table
            DataTable dt = new DataTable();
            da.Fill(dt);
            return dt;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
            throw;
        }
    }

    static void Main(string[] args)
    {
        // Retrieve data and store it in a DataTable
        DataTable table = GetData();

        // Create a new Workbook
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        wb.Metadata.Author = "JOHN";

        // Use the default worksheet
        WorkSheet ws = wb.DefaultWorkSheet;
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable
        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++;
        }

        // Save the workbook as a CSV file
        wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv");
    }
}
using System;
using System.Data;
using System.Data.SqlClient;
using IronXL;

class Program
{
    // Method to retrieve data from SQL database and return as DataTable
    public static DataTable GetData()
    {
        // Define connection string (modify accordingly for your local server)
        string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
        string query = "SELECT * FROM STUDENT_DATA";

        try
        {
            // Create SQL connection
            using SqlConnection conn = new SqlConnection(connString);
            // Create SQL command
            SqlCommand cmd = new SqlCommand(query, conn);
            conn.Open();
            // Create data adapter
            using SqlDataAdapter da = new SqlDataAdapter(cmd);
            // Query the database and return the result to a data table
            DataTable dt = new DataTable();
            da.Fill(dt);
            return dt;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
            throw;
        }
    }

    static void Main(string[] args)
    {
        // Retrieve data and store it in a DataTable
        DataTable table = GetData();

        // Create a new Workbook
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        wb.Metadata.Author = "JOHN";

        // Use the default worksheet
        WorkSheet ws = wb.DefaultWorkSheet;
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable
        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++;
        }

        // Save the workbook as a CSV file
        wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv");
    }
}
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports IronXL

Friend Class Program
	' Method to retrieve data from SQL database and return as DataTable
	Public Shared Function GetData() As DataTable
		' Define connection string (modify accordingly for your local server)
		Dim connString As String = "server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;"
		Dim query As String = "SELECT * FROM STUDENT_DATA"

		Try
			' Create SQL connection
			Using conn As New SqlConnection(connString)
				' Create SQL command
				Dim cmd As New SqlCommand(query, conn)
				conn.Open()
				' Create data adapter
				Using da As New SqlDataAdapter(cmd)
					' Query the database and return the result to a data table
					Dim dt As New DataTable()
					da.Fill(dt)
					Return dt
				End Using
			End Using
		Catch ex As Exception
			Console.WriteLine($"An error occurred: {ex.Message}")
			Throw
		End Try
	End Function

	Shared Sub Main(ByVal args() As String)
		' Retrieve data and store it in a DataTable
		Dim table As DataTable = GetData()

		' Create a new Workbook
		Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
		wb.Metadata.Author = "JOHN"

		' Use the default worksheet
		Dim ws As WorkSheet = wb.DefaultWorkSheet
		Dim rowCount As Integer = 1

		' Populate the worksheet with data from the DataTable
		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

		' Save the workbook as a CSV file
		wb.SaveAsCsv("D:\Tutorial Project\Save_DataTable_CSV.csv")
	End Sub
End Class
$vbLabelText   $csharpLabel

Explication du code

  • La méthode GetData() récupère des données d'une base de données SQL Server et les retourne sous forme de DataTable.

  • Dans la méthode Main, un WorkBook est créé en utilisant IronXL, et les données sont ensuite peuplées dans un WorkSheet.

  • Une boucle foreach parcourt les lignes du DataTable, insérant chaque valeur dans une nouvelle ligne du WorkSheet.

  • Enfin, le fichier CSV est sauvegardé 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 correspond aux données d'entrée fournies.

Résumé

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

  1. Récupérer les données depuis SQL Server.
  2. Peupler les données dans un tableau de données.
  3. Créer un fichier CSV à partir de ce tableau de données.

Il est très facile de créer un fichier CSV dans .NET 7 en utilisant IronXL, comme démontré ci-dessus. Les performances du programme sont exceptionnelles car il est écrit en .NET 7 avec IronXL. IronXL offre d'autres fonctionnalités utiles telles que la création, la lecture et la manipulation de fichiers Excel. Pour plus de détails, veuillez consulter la documentation officielle.

Additionally, IronPDF offers developers methods to render PDF documents into images and extract text and content from a PDF. Additionally, IronPDF is also capable of rendering charts in PDFs, adding barcodes, enhancing security with passwords programmatically.

La version gratuite d'IronXL est utilisée à des fins de développement. To deploy an application in production, please obtain a free trial version or a commercial license. IronXL fait partie de l'Iron Suite, qui se compose de cinq bibliothèques :

  1. IronXL, qui est explorée aujourd'hui.
  2. IronPDF pour générer, lire et manipuler des fichiers PDF
  3. IronOCR pour travailler à l'extraction de texte d'images
  4. IronBarcode pour lire et générer des codes-barres
  5. IronWebScraper pour extraire des données structurées de sites web.

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

Questions Fréquemment Posées

Comment puis-je convertir un jeu de données C# en fichier CSV ?

Vous pouvez convertir un jeu de données C# en fichier CSV en utilisant IronXL. Tout d'abord, récupérez les données d'une source, telle qu'une base de données SQL Server, et remplissez-les dans une DataTable. Ensuite, utilisez IronXL pour exporter la DataTable en fichier CSV.

Ai-je besoin de Microsoft Office pour travailler avec des fichiers Excel dans .NET ?

Non, vous n'avez pas besoin de Microsoft Office pour travailler avec des fichiers Excel dans .NET lorsque vous utilisez IronXL. IronXL fonctionne de manière indépendante sans nécessiter de dépendances Office ou Interop.

Quelle est la meilleure façon d'installer IronXL pour gérer les tableurs dans .NET ?

La meilleure façon d'installer IronXL pour gérer les tableurs est via la console du gestionnaire de packages NuGet dans Visual Studio. Utilisez la commande : Install-Package IronXL.Excel.

Comment IronXL améliore-t-il la productivité lors du travail avec les tableurs ?

IronXL améliore la productivité en permettant aux développeurs de lire, générer, et éditer rapidement et facilement des fichiers Excel et CSV dans des applications .NET, sans besoin d'installations logicielles supplémentaires ou de dépendances.

Puis-je utiliser IronXL pour générer des fichiers CSV à partir de n'importe quelle source de données ?

Oui, vous pouvez utiliser IronXL pour générer des fichiers CSV à partir de n'importe quelle source de données. L'article démontre cela en utilisant une base de données SQL Server pour remplir une DataTable, qui est ensuite exportée vers CSV en utilisant IronXL.

IronXL est-il compatible avec les dernières versions de .NET ?

Oui, IronXL est compatible avec les dernières versions de .NET, y compris .NET 7, et offre des avantages de performance améliorés sur ces plateformes.

Quels sont les principaux avantages de l'utilisation d'IronXL pour les tâches liées aux tableurs ?

Les principaux avantages de l'utilisation d'IronXL incluent sa capacité à gérer les tableurs sans Microsoft Office, son support pour toutes les versions de .NET, et sa simplicité à convertir des jeux de données en fichiers CSV efficacement.

Qu'est-ce que l'Iron Suite et qu'inclut-elle ?

L'Iron Suite est une collection de bibliothèques qui inclut IronXL pour les fichiers Excel, IronPDF pour les PDF, IronOCR pour l'extraction de texte à partir d'images, IronBarcode pour les codes-barres, et IronWebScraper pour l'extraction de données web.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite