Passer au contenu du pied de page
UTILISATION D'IRONXL

Importer un fichier Excel dans DataTable avec IronXL

Importer un fichier Excel dans une DataTable avec IronXL en C#

Ce n'est un secret pour personne que l'analyse manuelle de fichiers Excel est rarement le moment le plus agréable de la journée d'un développeur. Nous sommes tous passés par là, à lutter contre d'anciennes chaînes de connexion OLEDB ou à essayer de convertir des données de feuilles de calcul non structurées en un format que votre application .NET peut réellement comprendre.

La DataTable en C# est un formidable outil d'égalisation. Il sert de pont idéal, transformant ces lignes et colonnes en une structure familière, prête pour les requêtes LINQ, la liaison DataGrid ou un accès rapide à une base de données SQL.

IronXL simplifie considérablement ce processus. Au lieu de configurations complexes, il utilise une seule méthode ToDataTable intuitive pour gérer la conversion. Que vous développiez un outil de reporting ou un script de migration de données, voici comment importer facilement des données Excel.

Vous voulez nous suivre ? Utilisez la version d'essai gratuite IronXL pour tester vous-même cette puissante bibliothèque.

How Can You Import an Excel File into a DataTable in C#?

Pour importer un fichier Excel dans un DataTable en C#, chargez le classeur à l'aide de WorkBook.Load, accédez à la feuille de calcul cible et appelez la méthode ToDataTable. Cette approche fonctionne avec les fichiers XLSX, XLS, XLSM et CSV. Veillez à faire référence aux espaces de noms suivants pour accéder aux classes nécessaires.

Installez IronXL via le gestionnaire de packages NuGet en exécutant la commande suivante dans Visual Studio à l'aide du gestionnaire de packages NuGet :

Install-Package IronXL.Excel

Ensuite, utilisez ce court extrait de code pour faire circuler vos données :

using IronXL;
using System;
using System.Data;
class Program
{
    static void Main(string[] args)
    {
        // Load the Excel file from the specified path
        string filePath = "sales-data.xlsx";
        WorkBook workbook = WorkBook.Load(filePath);
        // Access the first worksheet in the workbook
        WorkSheet worksheet = workbook.DefaultWorkSheet;
        // Convert worksheet to DataTable with first row as column headers
        DataTable dt = worksheet.ToDataTable(true);
        // Display the imported data
        foreach (DataRow row in dt.Rows)
        {
            Console.WriteLine(string.Join(" | ", row.ItemArray));
        }
    }
}
using IronXL;
using System;
using System.Data;
class Program
{
    static void Main(string[] args)
    {
        // Load the Excel file from the specified path
        string filePath = "sales-data.xlsx";
        WorkBook workbook = WorkBook.Load(filePath);
        // Access the first worksheet in the workbook
        WorkSheet worksheet = workbook.DefaultWorkSheet;
        // Convert worksheet to DataTable with first row as column headers
        DataTable dt = worksheet.ToDataTable(true);
        // Display the imported data
        foreach (DataRow row in dt.Rows)
        {
            Console.WriteLine(string.Join(" | ", row.ItemArray));
        }
    }
}
$vbLabelText   $csharpLabel

Sortie

Importation d'un fichier Excel dans DataTable avec IronXL: Image 1 - Fichier Excel importé dans un DataTable

La méthode WorkBook.Load lit le fichier Excel à partir de l'emplacement filePath (chaîne de caractères) et crée un objet classeur contenant toutes les données de la feuille Excel. Le paramètre ToDataTable(true) indique que la première ligne contient des en-têtes de colonnes, qui sont automatiquement utilisés comme noms de colonnes de la table de données.

Quelle est la meilleure méthode pour importer les données d'un fichier Excel dans un DataTable ?

La lecture efficace du contenu d'un fichier Excel nécessite la gestion à la fois des lignes d'en-tête et des données brutes. La méthode ToDataTable d'IronXL accepte un paramètre booléen qui détermine si la première ligne est traitée comme des noms de colonnes ou comme des données. Notez que la gestion des propriétés étendues ou la conversion de types de cellules complexes peuvent nécessiter une configuration supplémentaire, mais la méthode par défaut gère la plupart des cas de manière robuste.

using IronXL;
using System.Data;
// Load workbook from file path
string filePath = @"C:\Data\inventory.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet worksheet = workbook.WorkSheets[0];
// First row as headers (true) or as data (false)
DataTable dataTableWithHeaders = worksheet.ToDataTable(true);
DataTable dataTableWithoutHeaders = worksheet.ToDataTable(false);
// Process each row in the DataTable
foreach (DataRow row in dataTableWithHeaders.Rows)
{
    for (int i = 0; i < dataTableWithHeaders.Columns.Count; i++)
    {
        object value = row[i];
        Console.Write($"{value}\t");
    }
    Console.WriteLine();
}
using IronXL;
using System.Data;
// Load workbook from file path
string filePath = @"C:\Data\inventory.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet worksheet = workbook.WorkSheets[0];
// First row as headers (true) or as data (false)
DataTable dataTableWithHeaders = worksheet.ToDataTable(true);
DataTable dataTableWithoutHeaders = worksheet.ToDataTable(false);
// Process each row in the DataTable
foreach (DataRow row in dataTableWithHeaders.Rows)
{
    for (int i = 0; i < dataTableWithHeaders.Columns.Count; i++)
    {
        object value = row[i];
        Console.Write($"{value}\t");
    }
    Console.WriteLine();
}
$vbLabelText   $csharpLabel

Sortie

Importation d'un fichier Excel dans DataTable avec IronXL: Image 2 - Résultat de l'importation et de la lecture d'un fichier Excel dans un DataTable

Cette flexibilité fait IronXL la solution idéale pour le traitement des fichiers de tableur Excel, quelle que soit leur structure. Contrairement au package EPPlus ou aux méthodes traditionnelles nécessitant de nouvelles instances d'OleDbDataAdapter, IronXL gère la conversion en un seul appel de méthode. La bibliothèque prend en charge .NET Core, .NET Framework et le déploiement multiplateforme sans nécessiter l'installation de Microsoft Excel.

Comment convertir plusieurs feuilles de calcul Excel en un jeu de données ?

Lorsque votre classeur Excel contient plusieurs feuilles, la conversion en DataSet préserve chaque feuille de calcul Excel en tant que DataTable distincte au sein de la collection. Cette approche est essentielle pour les applications de reporting et le traitement de données multi-feuilles.

using IronXL;
using System;
using System.Data;
// Load multi-sheet workbook
WorkBook workbook = WorkBook.Load("quarterly-reports.xlsx");
// Convert entire workbook to DataSet (each sheet becomes a DataTable)
DataSet dataset = workbook.ToDataSet();
// Iterate through all tables in the DataSet
foreach (DataTable table in dataset.Tables)
{
    Console.WriteLine($"Sheet: {table.TableName}");
    Console.WriteLine($"Rows: {table.Rows.Count}, Columns: {table.Columns.Count}");
    foreach (DataRow row in table.Rows)
    {
        Console.WriteLine(string.Join(", ", row.ItemArray));
    }
}
using IronXL;
using System;
using System.Data;
// Load multi-sheet workbook
WorkBook workbook = WorkBook.Load("quarterly-reports.xlsx");
// Convert entire workbook to DataSet (each sheet becomes a DataTable)
DataSet dataset = workbook.ToDataSet();
// Iterate through all tables in the DataSet
foreach (DataTable table in dataset.Tables)
{
    Console.WriteLine($"Sheet: {table.TableName}");
    Console.WriteLine($"Rows: {table.Rows.Count}, Columns: {table.Columns.Count}");
    foreach (DataRow row in table.Rows)
    {
        Console.WriteLine(string.Join(", ", row.ItemArray));
    }
}
$vbLabelText   $csharpLabel

Sortie

Importation d'un fichier Excel dans DataTable avec IronXL: Image 3 - Résultat de l'importation d'un fichier Excel multi-feuilles dans DataSet

La méthode ToDataSet crée un nouveau DataSet contenant des objets DataTable pour chaque feuille de calcul. La propriété TableName de chaque tableau reflète le nom de la feuille Excel d'origine, ce qui facilite la référence à des données spécifiques lors du traitement.

Comment importer des données d'Excel vers une base de données ?

Un flux de travail courant consiste à lire les données d'un fichier Excel et à les insérer dans un système de base de données. La structure DataTable s'intègre parfaitement à .NET pour les opérations de base de données.

using IronXL;
using System.Data;
using System.Data.SqlClient;
string filePath = @"C:\imports\customer-data.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Convert Excel data to DataTable
DataTable dt = worksheet.ToDataTable(true);
// Validate data before database insert
if (dt == null || dt.Rows.Count == 0)
{
    Console.WriteLine("No data to import");
    return;
}
// Insert into database using SqlBulkCopy
string connectionString = "Server=.;Database=Sales;Trusted_Connection=True;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
    {
        bulkCopy.DestinationTableName = "Customers";
        bulkCopy.WriteToServer(dt);
    }
}
Console.WriteLine($"Imported {dt.Rows.Count} records successfully");
using IronXL;
using System.Data;
using System.Data.SqlClient;
string filePath = @"C:\imports\customer-data.xlsx";
WorkBook workbook = WorkBook.Load(filePath);
WorkSheet worksheet = workbook.DefaultWorkSheet;
// Convert Excel data to DataTable
DataTable dt = worksheet.ToDataTable(true);
// Validate data before database insert
if (dt == null || dt.Rows.Count == 0)
{
    Console.WriteLine("No data to import");
    return;
}
// Insert into database using SqlBulkCopy
string connectionString = "Server=.;Database=Sales;Trusted_Connection=True;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
    {
        bulkCopy.DestinationTableName = "Customers";
        bulkCopy.WriteToServer(dt);
    }
}
Console.WriteLine($"Imported {dt.Rows.Count} records successfully");
$vbLabelText   $csharpLabel

Ce code montre comment charger un fichier Excel, le convertir en DataTable et effectuer une insertion en masse dans une base de données. La vérification de valeur nulle garantit l'intégrité des données avant de tenter l'opération d'importation.

Comment exporter un DataTable vers Excel ?

IronXL prend en charge le flux de données bidirectionnel, vous permettant de créer des fichiers Excel à partir d'objets DataTable pour les scénarios de reporting et d'exportation de données.

using IronXL;
using System.Data;
// Create sample DataTable
DataTable dt = new DataTable("Products");
dt.Columns.Add("ProductID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.Rows.Add(1, "Widget", 29.99m);
dt.Rows.Add(2, "Gadget", 49.99m);
// Create new workbook and load DataTable
WorkBook workbook = WorkBook.Create();
workbook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } });
// Save as Excel file
workbook.SaveAs("exported-products.xlsx");
using IronXL;
using System.Data;
// Create sample DataTable
DataTable dt = new DataTable("Products");
dt.Columns.Add("ProductID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Price", typeof(decimal));
dt.Rows.Add(1, "Widget", 29.99m);
dt.Rows.Add(2, "Gadget", 49.99m);
// Create new workbook and load DataTable
WorkBook workbook = WorkBook.Create();
workbook.LoadWorkSheetsFromDataSet(new DataSet { Tables = { dt } });
// Save as Excel file
workbook.SaveAs("exported-products.xlsx");
$vbLabelText   $csharpLabel

Sortie

Importation d'un fichier Excel dans DataTable avec IronXL: Image 4 - DataTable exporté vers Excel

La méthode LoadWorkSheetsFromDataSet accepte un DataSet contenant vos objets DataTable et crée les feuilles de calcul correspondantes. Pour en savoir plus sur l'exportation de DataTable vers Excel, consultez la documentation.

Conclusion

IronXL transforme la complexité de la conversion Excel vers DataTable en appels de méthodes simples. Qu'il s'agisse d'importer une seule feuille de calcul Excel ou de traiter des classeurs à plusieurs feuilles pour obtenir un DataSet complet, la bibliothèque gère efficacement les fichiers XLSX, la conversion des types de données et le chargement en flux continu.

La combinaison de la flexibilité de DataTable et de l'API intuitive d'IronXL permet des flux de données puissants pour l'intégration de bases de données, les systèmes de reporting et la liaison de données d'applications. Téléchargez IronXL pour optimiser le traitement de vos données Excel, ou achetez une licence pour un déploiement en production.

Commencez avec IronXL maintenant.
green arrow pointer

Questions Fréquemment Posées

Comment importer un fichier Excel dans un DataTable en utilisant C# ?

Vous pouvez utiliser IronXL pour importer facilement des fichiers Excel dans un DataTable en C#. IronXL fournit une API simple permettant de charger les fichiers Excel et de les convertir en DataTables pour une manipulation ultérieure.

Quels sont les avantages d'utiliser IronXL pour la manipulation de fichiers Excel en C#?

IronXL offre une solution robuste pour la manipulation de fichiers Excel en C#, permettant notamment la lecture, l'écriture et la conversion de données Excel vers différents formats tels que DataTables. Compatible avec tous les principaux types de fichiers Excel, il allie hautes performances et simplicité d'utilisation.

IronXL est-il compatible avec .NET Core?

Oui, IronXL est entièrement compatible avec .NET Core, permettant le développement et le déploiement multiplateformes d'applications nécessitant la manipulation de fichiers Excel.

Puis-je utiliser IronXL pour lire des fichiers Excel de différents formats ?

IronXL prend en charge la lecture des fichiers Excel dans différents formats, notamment XLSX, XLS, CSV et TSV, offrant ainsi une grande flexibilité dans la gestion de différents types de données Excel.

IronXL prend-il en charge les fonctionnalités de sécurité des fichiers Excel ?

Oui, IronXL prend en charge les fichiers Excel protégés par mot de passe, ce qui vous permet de charger et de travailler avec des documents Excel sécurisés dans vos applications C#.

Comment convertir un fichier Excel en DataTable à l'aide IronXL?

Avec IronXL, vous pouvez convertir un fichier Excel en DataTable en chargeant le classeur, en sélectionnant la feuille de calcul et en utilisant les méthodes intégrées pour exporter les données de la feuille de calcul vers un DataTable.

Quels types d'applications peuvent tirer profit de l'utilisation IronXL?

IronXL est idéal pour toute application nécessitant la manipulation de données Excel, comme les outils d'analyse de données, les systèmes de reporting ou tout logiciel ayant besoin d'importer, d'exporter ou de modifier des données Excel.

Peut-on utiliser IronXL pour modifier des fichiers Excel après les avoir importés dans une DataTable ?

Oui, IronXL vous permet de modifier et de mettre à jour des fichiers Excel même après leur importation dans une DataTable, offrant ainsi une expérience fluide pour la modification et l'enregistrement des changements.

Quel niveau d'expérience en programmation est nécessaire pour utiliser IronXL?

IronXL est conçu pour être facile à utiliser, avec une API conviviale qui peut être utilisée par les développeurs de tous niveaux d'expérience, le rendant accessible aussi bien aux débutants qu'aux utilisateurs avancés.

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

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi