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.
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.
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.
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.
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.
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.
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 :
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
Explication du code
-
La méthode
GetData()récupère des données d'une base de données SQL Server et les renvoie sous forme deDataTable. -
Dans la méthode
Main, unWorkBookest créé à l'aide IronXL, puis les données sont insérées dans unWorkSheet. -
Une boucle
foreachparcourt les lignes deDataTable, en insérant chaque valeur dans une nouvelle ligne deWorkSheet. - Enfin, le fichier CSV est enregistré à l'aide de la fonction
SaveAsCsvfournie par IronXL.
Sortie
Le fichier CSV généré par ce programme est le suivant :
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 :
- Récupérer les données depuis SQL Server.
- Peupler les données dans un tableau de données.
- 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 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.
De plus, IronPDF offre aux développeurs des méthodes pour rendre des documents PDF en images et extraire du texte et du contenu d'un PDF. De plus, IronPDF est également capable de rendre des graphiques dans des PDFs, ajouter des codes-barres, améliorer la sécurité avec des mots de passe de manière programmatique.
La version gratuite d'IronXL est utilisée à des fins de développement. - Corrige un problème où ExportFilterImagesToDisk ne créait pas de fichiers dans le répertoire souhaité. IronXL fait partie de l'Iron Suite, qui se compose de cinq bibliothèques :
- IronXL, qui est explorée aujourd'hui.
- IronPDF pour générer, lire et manipuler des fichiers PDF
- IronOCR pour travailler à l'extraction de texte d'images
- IronBarcode pour lire et générer des codes-barres
- 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.



