Passer au contenu du pied de page
UTILISATION D'IRONXL
Comment convertir une table de données en fichier Excel

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 :

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 d'énormes données de Datatable vers Excel en C#, Figure 1 : Créer une nouvelle UI 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 d'énormes données de Datatable vers Excel en C#, Figure 2 : Étape de configuration dans 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 d'énormes données de Datatable vers Excel en C#, Figure 3 : Interface de sélection du Framework .Net 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 d'énormes données de Datatable vers Excel en C#, Figure 4 : Fichier program.cs vide sur 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 d'énormes données de Datatable vers Excel en C#, Figure 5 : Naviguer vers le 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 d'énormes données de Datatable 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 d'énormes données de Datatable vers Excel en C#, Figure 7 : Installer le 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 d'énormes données de Datatable vers Excel en C#, Figure 8 : Inclure le namespace d'IronXL avant d'utiliser la bibliothèque Inclure le 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
$vbLabelText   $csharpLabel

Dans le code ci-dessus, nous exportons le DataTable vers un fichier Excel. Tout d'abord, nous créons un DataTable, puis nous créons des 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 du DataTable une par une, puis nous ajoutons la valeur à la feuille de travail. Une fois toutes les valeurs ajoutées à la feuille de calcul, nous les enregistrons 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 d'énormes données de Datatable vers Excel en C#, Figure 9 : Le 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.

Result:

Comment exporter d'énormes données de Datatable vers Excel en C#, Figure 10 : Le résultat lors de 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 Gestionnaire de Paquets 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.

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