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, tels que l'analyse et le reporting de données, 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 for .NET Core en C# qui fournissent cette fonctionnalité pour lire les données et les fichiers Excel dans un DataTable. Les bibliothèques sont
- EPPlus
- 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 Excel en tant que DataTable en utilisant la bibliothèque Excel du package EPPlus C#.
Nous avons besoin d'un exemple de fichier Excel à lire comme DataTable. À cette fin, nous allons générer un exemple de fichier Excel.
Ci-dessous se trouve le code permettant de lire le fichier Excel comme un 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
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 comme sortie. Il parcourt également chaque ligne du DataTable, en imprimant 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 comme un DataTable est assez facile avec IronXL, avec seulement 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
Dans l'exemple de code ci-dessus, nous chargeons simplement le fichier Excel et le convertissons en un DataTable en utilisant 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 DataTables 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 comme DataTables. 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.
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.




