COMPARAISON AVEC D'AUTRES COMPOSANTS

EPPlus Read Excel to Datatable C# (IronXL Tutorial)

Publié mai 16, 2023
Partager:

Vous cherchez une bibliothèque Excel pour lire des données Excel dans un DataTable en C# ?

La lecture de fichiers Excel dans une "table de données" en C# a plusieurs applications pratiques dans divers secteurs et domaines, comme l'analyse de données et la création de rapports, l'importation de données dans des bases de données, la migration de données, la validation et le nettoyage de données, l'intégration avec d'autres systèmes, l'automatisation et le traitement par lots.

Dans cet article, nous allons discuter et comparer deux bibliothèques Excel différentes pour .NET Core en C# qui offrent cette fonctionnalité de lecture de données et de fichiers Excel dans un DataTable. Les bibliothèques sont

  1. EPPlus

  2. IronXL

1. Bibliothèque EPPlus

EPPlus est une puissante bibliothèque open-source permettant de créer et de manipuler des fichiers Excel en C#. Il fournit une API simple et intuitive qui permet aux développeurs de générer, lire et modifier des feuilles de calcul Excel de manière programmatique, sans nécessiter l'installation de Microsoft Office ou d'Excel sur le serveur ou les machines clientes. Avec EPPlus, vous pouvez facilement créer des feuilles de calcul, ajouter des données, appliquer un formatage, créer des graphiques et effectuer d'autres opérations sur des fichiers Excel. Il prend en charge à la fois l'ancien format .xls et le nouveau format .xlsx et offre des performances et une gestion de la mémoire efficaces. Que vous ayez besoin de générer des rapports dynamiques, d'importer/exporter des données ou d'automatiser des tâches liées à Excel, EPPlus offre un ensemble complet de fonctionnalités et de capacités pour simplifier la manipulation de vos fichiers Excel dans les applications C#.

2. IronXL

IronXL est une bibliothèque puissante et polyvalente qui permet aux développeurs de lire, d'écrire et de manipuler sans effort des fichiers Excel dans leurs applications .NET. Grâce à son API intuitive et complète, IronXL simplifie le processus autrement complexe de travail avec les feuilles de calcul, permettant aux développeurs d'extraire des données de manière transparente, d'effectuer des calculs, de créer des graphiques et de générer des rapports en toute simplicité. Qu'il s'agisse d'automatiser des tâches d'importation/exportation de données, d'effectuer des analyses de données ou de créer des modèles Excel dynamiques, IronXL fournit une solution robuste qui permet aux développeurs d'économiser un temps et des efforts précieux, tout en garantissant la précision et la fiabilité du traitement des données Excel. Grâce à son intégration transparente, à sa documentation complète et à son large éventail de fonctionnalités, IronXL s'impose comme le choix par excellence des développeurs à la recherche d'un outil fiable et efficace pour relever les défis associés à la manipulation des fichiers Excel dans le cadre .NET.

3. Installation de la bibliothèque EPPlus

Pour installer la bibliothèque EPPlus dans votre projet C#, vous devez tout d'abord créer un nouveau projet en mode console dans Visual Studio. Ensuite, vous pouvez facilement l'installer à l'aide du gestionnaire de paquets NuGet.

Une fois le nouveau projet créé, allez dans Outils et survolez le gestionnaire de paquets NuGet, puis sélectionnez "Gérer les paquets NuGet pour la solution".

EPPlus Read Excel to DataTable C#(Tutoriel IronXL) Figure 1

Une nouvelle fenêtre apparaît. Dans cette nouvelle fenêtre, cliquez sur l'option "Parcourir" et recherchez "EPPlus". Une liste de paquets s'affiche et vous devez sélectionner la dernière version stable. Ensuite, cliquez sur le bouton "Install" à droite pour installer la bibliothèque EPPlus.

EPPlus Read Excel to DataTable C#(Tutoriel IronXL) Figure 2

C'est ainsi qu'EPPlus sera ajouté à votre projet.

4. Installation d'IronXL

Il existe de nombreuses méthodes pour installer IronXL, mais dans cette section, nous ne parlerons que de l'installation d'IronXL à l'aide du gestionnaire de paquets NuGet.

Comme dans la section 3, créez un nouveau projet, allez dans "Tools" et ouvrez le NuGet Package Manager pour les solutions.

Dans la nouvelle fenêtre, saisissez le mot-clé "IronXL" dans la barre de recherche. Une liste s'affiche et vous pouvez sélectionner le paquet IronXL que vous souhaitez installer. Ensuite, cliquez sur le bouton "Installer" pour installer IronXL dans votre projet.

EPPlus Read Excel to DataTable C#(Tutoriel IronXL) Figure 3

IronXL est maintenant prêt à l'emploi.

5. Lecture de fichiers Excel et de données dans un tableau de données à l'aide de la bibliothèque EPPlus

Dans cette section, nous allons examiner le code permettant de lire Excel en tant que DataTable à l'aide de la bibliothèque Excel du paquet C# EPPlus.

Nous avons besoin d'un exemple de fichier Excel à lire en tant que Tableau de données. Pour ce faire, nous allons générer un fichier Excel type.

EPPlus Read Excel to DataTable C#(Tutoriel IronXL) Figure 4

Vous trouverez ci-dessous le code permettant de lire le fichier Excel en tant que "tableau de données".


    using OfficeOpenXml;
    using System;
    using System.Data;
    using System.IO;

    class Program
    {
        static void Main(string [] args)
        {
            var path = @"sample.xlsx";
            var data = ExcelDataToDataTable(path, "Table");
            foreach (DataRow row in data.Rows)
            {
                foreach (var wsrow in row.ItemArray)
                {
                    Console.Write(wsrow);
                }
                Console.WriteLine();
            }

        }
        public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
        {
            DataTable dt = new DataTable();
            var fi = new FileInfo(filePath);
            // Check if the file exists
            if (!fi.Exists)
                throw new Exception("File " + filePath + " Does Not Exists");

            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            var xlPackage = new ExcelPackage(fi);
            // get the first worksheet in the workbook
            var worksheet = xlPackage.Workbook.Worksheets [sheetName];

            dt = worksheet.Cells [1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = true;
            });

            return dt;
        }
    }

    using OfficeOpenXml;
    using System;
    using System.Data;
    using System.IO;

    class Program
    {
        static void Main(string [] args)
        {
            var path = @"sample.xlsx";
            var data = ExcelDataToDataTable(path, "Table");
            foreach (DataRow row in data.Rows)
            {
                foreach (var wsrow in row.ItemArray)
                {
                    Console.Write(wsrow);
                }
                Console.WriteLine();
            }

        }
        public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
        {
            DataTable dt = new DataTable();
            var fi = new FileInfo(filePath);
            // Check if the file exists
            if (!fi.Exists)
                throw new Exception("File " + filePath + " Does Not Exists");

            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            var xlPackage = new ExcelPackage(fi);
            // get the first worksheet in the workbook
            var worksheet = xlPackage.Workbook.Worksheets [sheetName];

            dt = worksheet.Cells [1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = true;
            });

            return dt;
        }
    }
Imports OfficeOpenXml
	Imports System
	Imports System.Data
	Imports System.IO

	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim path = "sample.xlsx"
			Dim data = ExcelDataToDataTable(path, "Table")
			For Each row As DataRow In data.Rows
				For Each wsrow In row.ItemArray
					Console.Write(wsrow)
				Next wsrow
				Console.WriteLine()
			Next row

		End Sub
		Public Shared Function ExcelDataToDataTable(ByVal filePath As String, ByVal sheetName As String, Optional ByVal hasHeader As Boolean = True) As DataTable
			Dim dt As New DataTable()
			Dim fi = New FileInfo(filePath)
			' Check if the file exists
			If Not fi.Exists Then
				Throw New Exception("File " & filePath & " Does Not Exists")
			End If

			ExcelPackage.LicenseContext = LicenseContext.NonCommercial
			Dim xlPackage = New ExcelPackage(fi)
			' get the first worksheet in the workbook
			Dim worksheet = xlPackage.Workbook.Worksheets (sheetName)

			dt = worksheet.Cells (1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column).ToDataTable(Sub(c)
				c.FirstRowIsColumnNames = True
			End Sub)

			Return dt
		End Function
	End Class
VB   C#

Le code ci-dessus appelle une méthode qui prend des paramètres d'entrée tels que le chemin d'accès au fichier et le nom de la feuille, et renvoie un Tableau de données en sortie.

5.1. Sortie

EPPlus Read Excel to DataTable C#(Tutoriel IronXL) Figure 5

6. Lire des fichiers Excel en tant que tableau de données avec IronXL

La conversion d'une feuille Excel et sa lecture en tant que tableau de données est très facile avec IronXL, avec seulement quelques lignes de code. En outre, nous utiliserons le fichier Excel précédent comme entrée.

L'exemple de code suivant exécute la même fonctionnalité que le code ci-dessus, mais en utilisant IronXL.


    using IronXL;
    using System;
    using System.Data;

    WorkBook workBook = WorkBook.Load("sample.xlsx");

    WorkSheet workSheet = workBook.DefaultWorkSheet;

    DataTable Table = workSheet.ToDataTable(true);

    foreach (DataRow row in Table.Rows)
    {
        for (int row = 0; row  < dataTable.Columns.Count; row ++)
        {
            Console.Write(row [row ] + " ");
        }
        Console.WriteLine();
    }

    using IronXL;
    using System;
    using System.Data;

    WorkBook workBook = WorkBook.Load("sample.xlsx");

    WorkSheet workSheet = workBook.DefaultWorkSheet;

    DataTable Table = workSheet.ToDataTable(true);

    foreach (DataRow row in Table.Rows)
    {
        for (int row = 0; row  < dataTable.Columns.Count; row ++)
        {
            Console.Write(row [row ] + " ");
        }
        Console.WriteLine();
    }
Imports IronXL
	Imports System
	Imports System.Data

	Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

	Private workSheet As WorkSheet = workBook.DefaultWorkSheet

	Private Table As DataTable = workSheet.ToDataTable(True)

	For Each row As DataRow In Table.Rows
		For row As Integer = 0 To dataTable.Columns.Count - 1
			Console.Write(row (row) & " ")
		Next row
		Console.WriteLine()
	Next row
VB   C#

Dans l'exemple de code ci-dessus, nous chargeons simplement le fichier Excel et le convertissons en un "tableau de données" à l'aide de la fonction workSheet.ToDataTable(vrai)` méthode.

6.1 Sortie

EPPlus Read Excel to DataTable C#(Tutoriel IronXL) Figure 6

7. Conclusion

En conclusion, lorsqu'il s'agit de lire des fichiers Excel et de les convertir en tableaux de données en C#, EPPlus et IronXL sont d'excellentes bibliothèques qui offrent des fonctionnalités puissantes et simplifient le processus.

EPPlus est une bibliothèque open-source qui fournit une API simple pour générer, lire et modifier des feuilles de calcul Excel de manière programmatique. Il prend en charge les formats .xls et .xlsx et offre des performances et une gestion de la mémoire efficaces.

D'autre part,IronXL est une bibliothèque polyvalente qui permet aux développeurs de travailler sans effort avec des fichiers Excel dans des applications .NET. Il offre une API intuitive et des fonctionnalités complètes pour extraire des données, effectuer des calculs, créer des graphiques et générer des rapports. IronXL simplifie les tâches complexes de manipulation de fichiers Excel, telles que l'importation/exportation de données, l'analyse de données et la création de modèles dynamiques.

En comparant les exemples de code d'IronXL et d'EPPlus, nous constatons que le code d'EPPlus est assez long, complexe et difficile à lire. En revanche, le code IronXL est assez simple et facile à lire. IronXL utilise la feuille de calcul par défaut, mais dans EPPlus, vous devez indiquer le nom de la feuille de calcul, sinon vous obtiendrez une erreur.

En résumé, je recommanderais IronXL plutôt qu'EPPlus pour la manipulation de fichiers Excel et la lecture de fichiers Excel en tant que DataTables. En outre, IronXL offre beaucoup plus de fonctionnalités qu'EPPlus en ce qui concerne la manipulation de fichiers Excel avec un code simple. Pour plus de tutoriels sur IronXL, veuillez consulter les sites suivantslien.

< PRÉCÉDENT
Tutoriel sur les archives Zip pour les développeurs C# utilisant IronXL
SUIVANT >
Comparaison entre IronXL et FastExcel for .NET