Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
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
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#.
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.
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".
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.
C'est ainsi qu'EPPlus sera ajouté à votre projet.
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.
IronXL est maintenant prêt à l'emploi.
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.
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
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.
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
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.
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 DataTable
s. 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.
9 produits de l'API .NET pour vos documents de bureau