Datatable vers Excel en C# (Exemple de code Tutoriel)
Il peut être difficile de modifier un tableur Excel par programmation, pour deux raisons principales. Premièrement, lorsqu'on travaille avec des tableurs, il faut maintenir une interface cohérente et une structure de document, ce qui n'est pas toujours simple. Deuxièmement, il n'est pas toujours clair quel code fonctionnera dans des situations spécifiques, notamment lorsque des calculs sophistiqués sont impliqués. Il y a de nombreuses raisons pour lesquelles la création d'un fichier Excel par programmation est difficile. Les programmeurs doivent d'abord transformer les données dans le document Excel en un format lisible, puis analyser les données et les réanalyser, ce qui est encore plus difficile. J'ai trouvé une solution à ce problème. Je vais vous apprendre comment créer un fichier Excel et exporter un DataTable vers une feuille Excel par programmation sans problème en utilisant la bibliothèque Excel d'IronXL .NET. Commençons :
- Installez la bibliothèque C# pour exporter un DataTable vers Excel.
- Créer un nouveau classeur Excel et accéder à la feuille de calcul
- Parcourir `DataRow` d' `DataTable` en C#
- Accédez à la propriété `Value` de `Cell` et remplissez la feuille de calcul avec les données de `DataRow`
- Exporter la feuille de calcul Excel vers l'emplacement souhaité
Caractéristiques d'IronXL
- IronXL fonctionne sur une variété de systèmes d'exploitation, y compris Windows, Linux et macOS.
- Presque tous les Frameworks .NET sont pris en charge par IronXL, y compris l'application Console, Windows Forms et l'application Web.
- IronXL rend la lecture des fichiers Excel simple et facile.
- Nous pouvons charger, éditer, exporter des Datatables, exporter des ensembles de données et lire des formats de fichiers Excel tels que les fichiers XLSX, XLS, CSV, TSV, XLST, XLSM, et plus encore avec IronXL.
- IronXL nous permet de sauvegarder et d'exporter des fichiers avec une variété d'extensions, y compris XLS, CSV, TSV, JSON, XLSX, et d'autres.
- Les formules Excel peuvent être créées par IronXL.
- IronXL prend en charge les formats de données des cellules Excel tels que Texte, Nombres, Formules, Dates, Devise, Pourcentages et autres formats de données de cellules Excel.
- Il fournit également de nombreuses options de tri telles que Plage, Colonnes et Lignes, entre autres.
- Le style de cellule dans IronXL comprend police, taille, motif de fond, bordure, et alignement, entre autres.
- Nous pouvons lire et exporter des données à partir d'un fichier Excel en utilisant IronXL.
- IronXL ne nécessite pas l'installation d'Excel ou d'Interop sur votre serveur. L'API IronXL est plus rapide et plus facile à utiliser que Microsoft Office, Interop, et Excel.
1 Création d'un nouveau projet dans Visual Studio
Pour utiliser la bibliothèque IronXL, nous devons créer un projet .NET dans Visual Studio. Vous pouvez utiliser n'importe quelle version de Visual Studio, mais la dernière version est recommandée. Vous pouvez créer une application comme Windows Forms ou différents modèles de projets, selon vos besoins. Je vais utiliser l'application Console pour ce tutoriel, pour plus de simplicité.
Comment exporter un grand volume de données d'une table de données vers Excel en C# ? Figure 1 : Créer une nouvelle interface utilisateur de projet dans Visual Studio. Créer une nouvelle UI de projet dans Visual Studio
Ensuite, entrez le nom du projet et l'emplacement du projet.
Comment exporter un grand volume de données d'une table de données vers Excel en C# ? Figure 2 : Étape de configuration lors de la création d'un nouveau projet. Étape de configuration dans la création d'un nouveau projet
Ensuite, sélectionnez le framework ci-dessous. Dans ce projet, nous allons utiliser .NET Core 6.
Comment exporter un volume important de données d'une table de données vers Excel en C#, Figure 3 : Interface utilisateur de sélection du .NET Framework Interface de sélection du Framework .Net
Une fois que l'application crée la solution, elle ouvrira le fichier program.cs où vous pourrez entrer le code et construire/exécuter l'application.
Comment exporter un grand volume de données d'une table de données vers Excel en C# ? Figure 4 : Fichier program.cs vide dans le nouveau projet. Fichier program.cs vide sur le nouveau projet
Ensuite, nous pouvons ajouter la bibliothèque pour tester le code.
2 Installer la bibliothèque IronXL
La bibliothèque IronXL peut être téléchargée et installée de quatre manières.
Ceux-ci sont :
- Utiliser Visual Studio
- Utiliser la ligne de commande de Visual Studio.
- Téléchargement direct depuis le site NuGet.
- Téléchargement direct depuis le site Web d'IronXL.
2.1 Utiliser Visual Studio
Nous pouvons installer la bibliothèque IronXL en utilisant le gestionnaire de packages NuGet. Vous devez d'abord ouvrir le gestionnaire de packages NuGet, puis chercher IronXL dans l'onglet de navigation. Sélectionnez IronXL parmi les résultats de recherche et installez-le. Après cela, notre projet sera prêt à utiliser la bibliothèque IronXL.
La capture d'écran ci-dessous montre comment nous pouvons ouvrir le gestionnaire de packages NuGet dans Visual Studio.
Comment exporter un grand volume de données d'une table de données vers Excel en C# ? Figure 5 : Accéder au gestionnaire de packages NuGet dans Visual Studio. Accédez au Gestionnaire de packages NuGet dans Visual Studio
IronXL dans les résultats de recherche :
Comment exporter un grand volume de données d'une table de données vers Excel en C#, Figure 6 : Recherche de la bibliothèque IronXL Recherche de la bibliothèque IronXL
2.2 Utiliser la ligne de commande de Visual Studio
Beaucoup de gens aiment utiliser une console pour effectuer des opérations. Nous pouvons donc aussi l'installer par console. Suivez les étapes ci-dessous pour installer IronXL via la ligne de commande.
- Dans Visual Studio, allez à Outils-> Gestionnaire de packages NuGet -> Console du gestionnaire de packages.
- Entrez la ligne suivante dans l'onglet Console du gestionnaire de packages :
Install-Package IronXL.Excel
Maintenant, le package va être téléchargé/installé dans le projet en cours et sera prêt à l'emploi.
Comment exporter un grand volume de données d'une table de données vers Excel en C#, Figure 7 : Installation du package IronXL via la console ? Installer le package IronXL via la console
2.3 Téléchargement direct depuis le site Web de NuGet
La troisième façon est de télécharger directement le package NuGet depuis le site Web.
- Allez sur la page officielle du package IronXL de NuGet.
- Sélectionnez l'option de téléchargement du package dans le menu à droite.
- Double-cliquez sur le package téléchargé. Il s'installera automatiquement.
- Ensuite, rechargez la solution et commencez à l'utiliser dans le projet.
2.4 Téléchargement direct depuis le site Web d'IronXL
Cliquez sur le lien pour télécharger le dernier package directement depuis le site Web. Une fois téléchargé, suivez les étapes ci-dessous pour ajouter le package au projet.
- Faites un clic droit sur le projet depuis la fenêtre de solution.
- Puis, sélectionnez les options de référence et parcourez l'emplacement de la référence téléchargée.
- Ensuite, cliquez sur ok pour ajouter la référence.
3 Exporter Datatable vers un fichier Excel en utilisant IronXL
IronXL nous permet d'exporter des DataTables vers des fichiers Excel facilement avec un nombre limité d'étapes.
Tout d'abord, nous devons inclure le namespace d'IronXL comme dans la capture d'écran du code ci-dessous. Une fois qu'il est ajouté, nous pouvons utiliser les classes et méthodes IronXL dans notre code.
Comment exporter un grand volume de données d'une table de données vers Excel en C#, Figure 8 : Inclure l'espace de noms IronXL avant d'utiliser la bibliothèque ?
Incluez namespace d' IronXL avant d'utiliser la bibliothèque
IronXL nous permet de créer des fichiers Excel et de les convertir en objets de classeur. Après les avoir convertis en objets, nous pouvons effectuer divers types d'opérations. Dans le code d'exemple ci-dessous, nous allons convertir un DataTable en une feuille de calcul Excel, puis nous pouvons créer un fichier Excel.
using System;
using System.Data;
using IronXL;
public class ExcelExporter
{
/// <summary>
/// Exports a DataTable to an Excel file using IronXL.
/// </summary>
/// <param name="filePath">The file path where the Excel file will be saved.</param>
public static void ExportToExcel(string filePath)
{
// Creating a DataTable with a single column
DataTable table = new DataTable();
table.Columns.Add("DataSet_Animal", typeof(string));
// Adding some rows to the DataTable
table.Rows.Add("Lion");
table.Rows.Add("Tiger");
table.Rows.Add("Cat");
table.Rows.Add("Goat");
table.Rows.Add("Panther");
table.Rows.Add("Fox");
table.Rows.Add("Cheetah");
// Creating a new Excel Workbook
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
// Accessing the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
// Iterating through the DataTable rows
int rowCount = 1;
foreach (DataRow row in table.Rows)
{
// Adding each DataRow's first column value to the corresponding cell in the worksheet
ws["A" + rowCount].Value = row[0].ToString();
rowCount++;
}
// Saving the workbook to a CSV file at specified file path with ";" as delimiter
wb.SaveAsCsv(filePath, ";");
}
}
using System;
using System.Data;
using IronXL;
public class ExcelExporter
{
/// <summary>
/// Exports a DataTable to an Excel file using IronXL.
/// </summary>
/// <param name="filePath">The file path where the Excel file will be saved.</param>
public static void ExportToExcel(string filePath)
{
// Creating a DataTable with a single column
DataTable table = new DataTable();
table.Columns.Add("DataSet_Animal", typeof(string));
// Adding some rows to the DataTable
table.Rows.Add("Lion");
table.Rows.Add("Tiger");
table.Rows.Add("Cat");
table.Rows.Add("Goat");
table.Rows.Add("Panther");
table.Rows.Add("Fox");
table.Rows.Add("Cheetah");
// Creating a new Excel Workbook
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
// Accessing the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
// Iterating through the DataTable rows
int rowCount = 1;
foreach (DataRow row in table.Rows)
{
// Adding each DataRow's first column value to the corresponding cell in the worksheet
ws["A" + rowCount].Value = row[0].ToString();
rowCount++;
}
// Saving the workbook to a CSV file at specified file path with ";" as delimiter
wb.SaveAsCsv(filePath, ";");
}
}
Imports System
Imports System.Data
Imports IronXL
Public Class ExcelExporter
''' <summary>
''' Exports a DataTable to an Excel file using IronXL.
''' </summary>
''' <param name="filePath">The file path where the Excel file will be saved.</param>
Public Shared Sub ExportToExcel(ByVal filePath As String)
' Creating a DataTable with a single column
Dim table As New DataTable()
table.Columns.Add("DataSet_Animal", GetType(String))
' Adding some rows to the DataTable
table.Rows.Add("Lion")
table.Rows.Add("Tiger")
table.Rows.Add("Cat")
table.Rows.Add("Goat")
table.Rows.Add("Panther")
table.Rows.Add("Fox")
table.Rows.Add("Cheetah")
' Creating a new Excel Workbook
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
' Accessing the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet
' Iterating through the DataTable rows
Dim rowCount As Integer = 1
For Each row As DataRow In table.Rows
' Adding each DataRow's first column value to the corresponding cell in the worksheet
ws("A" & rowCount).Value = row(0).ToString()
rowCount += 1
Next row
' Saving the workbook to a CSV file at specified file path with ";" as delimiter
wb.SaveAsCsv(filePath, ";")
End Sub
End Class
Dans le code ci-dessus, nous exportons le DataTable vers un fichier Excel. Nous créons d'abord un objet DataTable, puis nous créons les en-têtes de colonnes. Après avoir créé les colonnes, nous ajoutons les lignes une par une. Une fois les lignes ajoutées, nous créons l'objet WorkBook . En utilisant l'objet, nous pouvons ajouter les données à la feuille Excel, puis nous pouvons enregistrer les données à l'emplacement. Nous créons l'objet WorkSheet qui permet de créer une feuille de calcul, puis nous pouvons l'ajouter à l'objet WorkBook.
Nous utilisons une boucle foreach pour lire les valeurs de DataTable une par une, puis nous ajoutons la valeur à la feuille de calcul. Une fois toutes les valeurs ajoutées à la feuille de calcul, nous les enregistrons ensuite dans un fichier CSV en utilisant la méthode appelée SaveAsCsv — nous devons passer le délimiteur et le nom du fichier avec l'emplacement comme paramètre. Un délimiteur est un paramètre facultatif que nous pouvons ignorer s'il n'est pas nécessaire.
Comment exporter un grand volume de données d'une table de données vers Excel en C# ? Figure 9 : Code complet dans Visual Studio. Le code complet dans Visual Studio
Ci-dessus, la capture d'écran complète du code que nous utilisons sur le .NET Core 6.
Résultat :
Comment exporter un grand volume de données d'une table de données vers Excel en C# ? Figure 10 : Résultat à l'ouverture du fichier dans Microsoft Excel. Le résultat lors de l'ouverture du fichier dans Microsoft Excel
Ci-dessus, le résultat de l'échantillon de code exécuté. Dans la capture d'écran, toutes les données disponibles dans le DataTable ont été ajoutées à la nouvelle feuille Excel créée, une par une.
4 Conclusion
IronXL est l'une des bibliothèques Excel les plus couramment utilisées. Il ne dépend d'aucune autre bibliothèque tierce. Il est indépendant et ne nécessite pas l'installation de MS Excel. Il fonctionne sur plusieurs plateformes. Le prix de lancement d' IronXL commence à $799. De plus, il propose l'option d'une redevance annuelle pour le support produit et les mises à jour. IronXL offre une couverture de redistribution libre de redevances à un coût supplémentaire. Pour en savoir plus sur les détails des prix, visitez notre page de licences.
Questions Fréquemment Posées
Comment puis-je exporter un DataTable vers un fichier Excel en C# ?
Vous pouvez utiliser les classes WorkBook et WorkSheet d'IronXL pour exporter un DataTable vers un fichier Excel. Créez un DataTable, parcourez ses lignes, et remplissez le fichier Excel avec les données en utilisant l'API d'IronXL.
Quels sont les avantages d'utiliser IronXL par rapport à Interop pour les opérations Excel ?
IronXL est plus rapide et plus efficace que Microsoft Interop, ne nécessite pas l'installation de Microsoft Excel, et prend en charge plusieurs plateformes et formats de fichiers.
Quels formats de fichiers IronXL prend-il en charge pour les fichiers Excel?
IronXL prend en charge divers formats de fichiers Excel, y compris XLSX, XLS, CSV, TSV, XLST, et XLSM, permettant une manipulation de fichiers polyvalente.
IronXL peut-il gérer les formules Excel lors de l'exportation de données ?
Oui, IronXL peut gérer les formules Excel, garantissant que les calculs complexes sont préservés lors de l'exportation de données d'un DataTable vers un fichier Excel.
Quels systèmes d'exploitation sont compatibles avec IronXL ?
IronXL est compatible avec plusieurs systèmes d'exploitation, y compris Windows, Linux et macOS, permettant un développement multiplateforme.
Est-il nécessaire d'avoir Microsoft Excel installé pour utiliser IronXL ?
Non, IronXL fonctionne indépendamment de Microsoft Excel, vous permettant de travailler avec des fichiers Excel sans avoir besoin d'Excel installé sur votre serveur.
Comment puis-je installer IronXL pour une utilisation dans un projet C# ?
Vous pouvez installer IronXL via le Package Manager NuGet dans Visual Studio, en utilisant la ligne de commande, ou en le téléchargeant directement depuis les sites de NuGet ou d'IronXL.
Quels frameworks .NET sont pris en charge par IronXL ?
IronXL prend en charge un large éventail de frameworks .NET, y compris Console, Application Windows Forms, et Application Web, le rendant polyvalent pour différents types de projets.
IronXL prend-il en charge le style et la mise en forme des cellules dans les fichiers Excel ?
Oui, IronXL offre une variété d'options de style et de mise en forme des cellules, telles que la définition des styles de police, des couleurs et des bordures, pour améliorer l'apparence des fichiers Excel.
Comment IronXL simplifie-t-il le processus de création de fichiers Excel de manière programmatique ?
IronXL simplifie le processus en fournissant une API facile à utiliser pour créer, modifier et exporter des fichiers Excel sans les complexités liées au maintien des interfaces et des structures requises par d'autres méthodes.



