Passer au contenu du pied de page
COMPARER à D'AUTRES COMPOSANTS

EPPlus Lire Excel vers DataTable C# (Tutoriel IronXL)

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

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

Dans cet article, nous allons examiner et comparer deux bibliothèques Excel différentes pour .NET Core en C# qui offrent cette fonctionnalité permettant de lire des données et des 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#. Elle fournit une API simple et intuitive qui permet aux développeurs de générer, lire et modifier des feuilles de calcul Excel par programmation, sans nécessiter l'installation de Microsoft Office ou d'Excel sur les machines serveur ou client. Avec EPPlus, vous pouvez facilement créer des feuilles de calcul, ajouter des données, appliquer une mise en forme, 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 pour simplifier la gestion 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 facilement des fichiers Excel au sein de leurs applications .NET. Grâce à son API intuitive et complète, IronXL simplifie le processus complexe de travail avec les feuilles de calcul, permettant aux développeurs d'extraire des données, 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 les 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 de gagner un temps précieux et d'économiser des efforts, tout en garantissant l'exactitude et la fiabilité du traitement des données Excel. Grâce à son intégration transparente, sa documentation exhaustive et son large éventail de fonctionnalités, IronXL s'impose comme le choix de prédilection des développeurs à la recherche d'un outil fiable et efficace pour relever les défis liés à la manipulation des fichiers Excel dans le framework .NET.

3. Installation de la bibliothèque EPPlus

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

Une fois le nouveau projet créé, accédez à Outils et survolez le Gestionnaire de packages NuGet, puis sélectionnez " Gérer les packages NuGet pour la solution ".

Une nouvelle fenêtre apparaîtra. Dans cette nouvelle fenêtre, allez dans l'option " Parcourir " et recherchez " EPPlus ". Une liste de paquets apparaîtra, et vous devrez sélectionner la dernière version stable. Cliquez ensuite sur le bouton " Installer " situé à droite pour installer la bibliothèque EPPlus.

Et voilà, EPPlus sera ajouté à votre projet.

4. Installation d'IronXL

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

Comme dans la section 3, créez un nouveau projet, allez dans " Outils " et ouvrez le Gestionnaire de packages NuGet pour les solutions.

Dans la nouvelle fenêtre, saisissez le mot-clé " IronXL " dans la barre de recherche. Une liste apparaîtra, et vous pourrez sélectionner le package IronXL que vous souhaitez installer. Cliquez ensuite sur le bouton " Installer " pour installer IronXL dans votre projet.

IronXL est désormais prêt à l'emploi.

5. Lecture de fichiers Excel et importation 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 un fichier Excel sous forme DataTable en utilisant la bibliothèque Excel du package EPPlus C#.

Nous avons besoin d'un exemple de fichier Excel à lire comme un DataTable . À cette fin, nous allons générer un exemple de fichier Excel.

Ci-dessous figure le code permettant de lire le fichier Excel sous forme de DataTable .

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

class Program
{
    static void Main(string[] args)
    {
        var path = @"sample.xlsx"; // Specify the path to your Excel file
        var data = ExcelDataToDataTable(path, "Table");

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in data.Rows)
        {
            foreach (var wsrow in row.ItemArray)
            {
                Console.Write(wsrow + " ");
            }
            Console.WriteLine();
        }
    }

    /// <summary>
    /// Converts Excel sheet data to a DataTable.
    /// </summary>
    /// <param name="filePath">The path to the Excel file.</param>
    /// <param name="sheetName">The name of the worksheet to read from.</param>
    /// <param name="hasHeader">Indicates whether the Excel sheet has a header row.</param>
    /// <returns>DataTable containing Excel data.</returns>
    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 exist.");

        // Set the license context for EPPlus
        ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

        // Load the Excel file into an EPPlus ExcelPackage
        using (var xlPackage = new ExcelPackage(fi))
        {
            // Get the specified worksheet from the workbook
            var worksheet = xlPackage.Workbook.Worksheets[sheetName];

            // Convert the worksheet to a DataTable, optionally using the first row as column names
            dt = worksheet.Cells[1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = hasHeader;
            });
        }

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

class Program
{
    static void Main(string[] args)
    {
        var path = @"sample.xlsx"; // Specify the path to your Excel file
        var data = ExcelDataToDataTable(path, "Table");

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in data.Rows)
        {
            foreach (var wsrow in row.ItemArray)
            {
                Console.Write(wsrow + " ");
            }
            Console.WriteLine();
        }
    }

    /// <summary>
    /// Converts Excel sheet data to a DataTable.
    /// </summary>
    /// <param name="filePath">The path to the Excel file.</param>
    /// <param name="sheetName">The name of the worksheet to read from.</param>
    /// <param name="hasHeader">Indicates whether the Excel sheet has a header row.</param>
    /// <returns>DataTable containing Excel data.</returns>
    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 exist.");

        // Set the license context for EPPlus
        ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

        // Load the Excel file into an EPPlus ExcelPackage
        using (var xlPackage = new ExcelPackage(fi))
        {
            // Get the specified worksheet from the workbook
            var worksheet = xlPackage.Workbook.Worksheets[sheetName];

            // Convert the worksheet to a DataTable, optionally using the first row as column names
            dt = worksheet.Cells[1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = hasHeader;
            });
        }

        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" ' Specify the path to your Excel file
		Dim data = ExcelDataToDataTable(path, "Table")

		' Iterate through each row in the DataTable and print its contents
		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

	''' <summary>
	''' Converts Excel sheet data to a DataTable.
	''' </summary>
	''' <param name="filePath">The path to the Excel file.</param>
	''' <param name="sheetName">The name of the worksheet to read from.</param>
	''' <param name="hasHeader">Indicates whether the Excel sheet has a header row.</param>
	''' <returns>DataTable containing Excel data.</returns>
	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 exist.")
		End If

		' Set the license context for EPPlus
		ExcelPackage.LicenseContext = LicenseContext.NonCommercial

		' Load the Excel file into an EPPlus ExcelPackage
		Using xlPackage = New ExcelPackage(fi)
			' Get the specified worksheet from the workbook
			Dim worksheet = xlPackage.Workbook.Worksheets(sheetName)

			' Convert the worksheet to a DataTable, optionally using the first row as column names
			dt = worksheet.Cells(1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column).ToDataTable(Sub(c)
				c.FirstRowIsColumnNames = hasHeader
			End Sub)
		End Using

		Return dt
	End Function
End Class
$vbLabelText   $csharpLabel

Le code ci-dessus définit une méthode qui prend des paramètres d'entrée tels que le chemin du fichier et le nom de la feuille et renvoie un DataTable en sortie. Il parcourt également chaque ligne du DataTable , en affichant les données.

5.1. Résultat

Le résultat sera le contenu du fichier Excel affiché dans la console.

6. Lecture de fichiers Excel sous forme de tableau de données à l'aide d'IronXL

Convertir une feuille Excel et la lire sous forme de DataTable est assez simple avec IronXL, et ne nécessite que quelques lignes de code. De plus, nous utiliserons le fichier Excel précédent comme entrée.

L'exemple de code suivant remplit la même fonction que le code ci-dessus, mais en utilisant IronXL.

using IronXL;
using System;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        // Load the Excel file into an IronXL WorkBook
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Get the default worksheet from the workbook
        WorkSheet workSheet = workBook.DefaultWorkSheet;

        // Convert the worksheet to a DataTable, specifying that the first row contains column names
        DataTable table = workSheet.ToDataTable(true);

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in table.Rows)
        {
            foreach (var cell in row.ItemArray)
            {
                Console.Write(cell + " ");
            }
            Console.WriteLine();
        }
    }
}
using IronXL;
using System;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        // Load the Excel file into an IronXL WorkBook
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Get the default worksheet from the workbook
        WorkSheet workSheet = workBook.DefaultWorkSheet;

        // Convert the worksheet to a DataTable, specifying that the first row contains column names
        DataTable table = workSheet.ToDataTable(true);

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in table.Rows)
        {
            foreach (var cell in row.ItemArray)
            {
                Console.Write(cell + " ");
            }
            Console.WriteLine();
        }
    }
}
Imports IronXL
Imports System
Imports System.Data

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Load the Excel file into an IronXL WorkBook
		Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

		' Get the default worksheet from the workbook
		Dim workSheet As WorkSheet = workBook.DefaultWorkSheet

		' Convert the worksheet to a DataTable, specifying that the first row contains column names
		Dim table As DataTable = workSheet.ToDataTable(True)

		' Iterate through each row in the DataTable and print its contents
		For Each row As DataRow In table.Rows
			For Each cell In row.ItemArray
				Console.Write(cell & " ")
			Next cell
			Console.WriteLine()
		Next row
	End Sub
End Class
$vbLabelText   $csharpLabel

Dans l'exemple de code ci-dessus, nous chargeons simplement le fichier Excel et le convertissons en DataTable à l'aide de la méthode workSheet.ToDataTable(true) .

6.1 Sortie

Le résultat sera le contenu du fichier Excel affiché dans la console.

7. Conclusion

En conclusion, lorsqu'il s'agit de lire des fichiers Excel et de les convertir en DataTable 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 par programmation. Il prend en charge les formats .xls et .xlsx et offre des performances et une gestion de la mémoire efficaces.

En revanche, IronXL est une bibliothèque polyvalente qui permet aux développeurs de travailler sans effort avec des fichiers Excel dans des applications .NET. Elle offre une API intuitive et des fonctionnalités complètes pour l'extraction de données, la réalisation de calculs, la création de graphiques et la génération de 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 manipuler et lire des fichiers Excel sous forme de DataTable . De plus, IronXL offre beaucoup plus de fonctionnalités qu'EPPlus pour la gestion des fichiers Excel avec un code simple. Pour plus de tutoriels sur IronXL, veuillez consulter le lien suivant.

Veuillez noterEPPlus est une marque déposée de son propriétaire respectif. Ce site n'est ni affilié à, ni approuvé par, ni sponsorisé par EPPlus. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont faites à titre d'information uniquement et reflètent les informations publiquement disponibles au moment de la rédaction.

Questions Fréquemment Posées

Comment puis-je lire les données Excel dans un DataTable en C# ?

Vous pouvez utiliser IronXL pour lire les données Excel dans un DataTable en chargeant le classeur Excel avec WorkBook.Load(), en accédant à la feuille de travail et en utilisant ToDataTable() pour convertir les données.

Quels sont les avantages de l'utilisation d'IronXL pour la manipulation d'Excel ?

IronXL propose une API simple et intuitive qui simplifie la manipulation des fichiers Excel. Il inclut des fonctionnalités comme l'extraction de données, les calculs, la création de graphiques et la génération de rapports, en faisant une solution complète pour les développeurs.

IronXL prend-il en charge les formats de fichiers .xls et .xlsx ?

Oui, IronXL prend en charge les formats de fichiers .xls et .xlsx, permettant une flexibilité de travail avec différents types de fichiers Excel.

Puis-je utiliser IronXL sans que Microsoft Office soit installé ?

Oui, IronXL peut être utilisé pour manipuler des fichiers Excel sans nécessiter l'installation de Microsoft Office ou Excel sur votre machine.

Comment installer IronXL dans un projet .NET ?

Pour installer IronXL, ouvrez le Gestionnaire de packages NuGet dans votre projet .NET, recherchez 'IronXL' et installez le package. Cela ajoutera IronXL à votre projet et vous permettra de commencer à utiliser ses fonctionnalités.

Quels sont les problèmes courants lors de la lecture des fichiers Excel dans un DataTable et comment les résoudre ?

Les problèmes courants incluent des chemins de fichiers incorrects, des formats non pris en charge ou des données mal formatées. Assurez-vous que le chemin du fichier est correct, que le format est pris en charge et que les données sont propres. IronXL fournit des messages d'erreur clairs pour aider à résoudre ces problèmes.

Comment IronXL se compare-t-il à EPPlus pour la lecture des fichiers Excel dans un DataTable ?

IronXL est reconnu pour sa facilité d'utilisation et ses fonctionnalités complètes, tandis qu'EPPlus est également efficace mais peut être plus complexe à implémenter. IronXL fournit une API plus simple pour les développeurs.

IronXL est-il adapté pour les grands fichiers Excel ?

Oui, IronXL est conçu pour gérer efficacement de grands fichiers Excel, offrant des fonctionnalités qui optimisent les performances et l'utilisation de la mémoire lors de la manipulation des fichiers.

IronXL peut-il être utilisé pour l'analyse des données et la génération de rapports ?

Absolument, IronXL est bien adapté pour l'analyse des données et la génération de rapports, offrant des fonctionnalités robustes pour l'extraction et la manipulation de données, la création de graphiques et la génération de rapports.

Quelles sont les caractéristiques clés d'IronXL qui bénéficient aux développeurs ?

Les caractéristiques clés d'IronXL incluent une extraction de données transparente, des capacités de calcul puissantes, une création de graphiques facile, une génération de rapports efficace et un large support des formats de fichiers Excel.

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