
EPPlus Lire Excel vers DataTable C# (Tutoriel IronXL)
À la recherche d'une bibliothèque Excel pour lire les données Excel dans un DataTable en C# ?
Lire les fichiers Excel dans un DataTable en C# a plusieurs applications pratiques dans divers secteurs et domaines, comme 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 lot.
Dans cet article, nous discuterons et comparerons deux bibliothèques Excel différentes pour .NET Core en C# qui offrent cette fonctionnalité de lire les données Excel 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 examinerons le code pour lire Excel comme un DataTable en utilisant la bibliothèque Excel du package C# EPPlus.
Nous avons besoin d'un fichier Excel d'exemple à lire comme un DataTable. À cette fin, nous allons générer un exemple de fichier Excel.
Ci-dessous, le code pour 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;
}
}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 ClassLe 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 retourne un DataTable en sortie. Il itère également à travers chaque ligne du DataTable, 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();
}
}
}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 ClassDans 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 deux bibliothèques excellentes 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 des fichiers Excel 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.

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.
Articles connexes



