Comment importer et exporter en tant qu'ensemble de données en C# | IronXL

Comment importer et exporter des DataSet/DataTable en C#;

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL convertit entre les classeurs Excel et les DataSets avec des appels de méthode uniques - utilisez LoadWorkSheetsFromDataSet() pour importer des DataSets dans des classeurs et ToDataSet() pour exporter des classeurs en tant que DataSets avec un mappage automatique de la feuille à la table.

Un DataSet est une représentation en mémoire de données contenant plusieurs tables, relations et contraintes liées. Utilisé pour travailler avec des données provenant de bases de données, de XML et d'autres sources. Lorsque vous travaillez avec des fichiers Excel en C#, DataSet fournissent une structure .NET familière qui s'intègre aux applications axées sur les données.

Un DataTable représente une table unique avec des lignes et des colonnes au sein d'un DataSet. IronXL fait automatiquement correspondre chaque feuille de calcul Excel à un DataTable correspondant, en préservant les en-têtes de colonnes et les types de données lors de la conversion.

Démarrage rapide : Exporter instantanément le classeur au format System.Data.DataSet

La conversion d'un classeur en DataSet nécessite un appel de méthode. Cet exemple exporte l'intégralité de votre classeur - chaque feuille en tant que DataTable - en utilisant ToDataSet avec la reconnaissance optionnelle de l'en-tête de la première rangée.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronXL avec le gestionnaire de packages NuGet

    PM > Install-Package IronXL.Excel

  2. Copiez et exécutez cet extrait de code.

    DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true);
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronXL dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer


Commencez avec IronXL


Comment charger un jeu de données dans un classeur?

Utilisez la méthode statique LoadWorkSheetsFromDataSet pour importer un DataSet dans un classeur. Cette méthode nécessite les objets DataSet et Workbook. Créez d'abord le classeur à l'aide de la méthode Create. Transmettez l'objet DataSet et l'objet workbook à la méthode.

:path=/static-assets/excel-content-code-examples/how-to/export-dataset-datatable-load.cs
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
$vbLabelText   $csharpLabel

Chaque DataTable au sein du DataSet devient une feuille de calcul distincte. Le nom du tableau devient le nom de la feuille de calcul, ce qui permet de conserver l'organisation des données. Pour les sources de données multiples, combinez ceci avec la création de nouvelles feuilles de calcul ou la gestion des feuilles de calcul existantes.

Voici un exemple complet de chargement d'un DataSet avec plusieurs tables :

using IronXL;
using System.Data;

// Create a DataSet with multiple tables
DataSet salesData = new DataSet("CompanySales");

// Create and populate a products table
DataTable productsTable = new DataTable("Products");
productsTable.Columns.Add("ProductID", typeof(int));
productsTable.Columns.Add("ProductName", typeof(string));
productsTable.Columns.Add("Price", typeof(decimal));

// Add sample data
productsTable.Rows.Add(1, "Laptop", 999.99m);
productsTable.Rows.Add(2, "Mouse", 19.99m);
productsTable.Rows.Add(3, "Keyboard", 49.99m);

// Create and populate a sales table
DataTable salesTable = new DataTable("Sales");
salesTable.Columns.Add("SaleID", typeof(int));
salesTable.Columns.Add("ProductID", typeof(int));
salesTable.Columns.Add("Quantity", typeof(int));
salesTable.Columns.Add("Date", typeof(DateTime));

// Add sample sales data
salesTable.Rows.Add(1, 1, 5, DateTime.Now);
salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1));
salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2));

// Add tables to DataSet
salesData.Tables.Add(productsTable);
salesData.Tables.Add(salesTable);

// Create workbook and load DataSet
WorkBook workBook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook);

// Save the workbook with all imported data
workBook.SaveAs("SalesReport.xlsx");
using IronXL;
using System.Data;

// Create a DataSet with multiple tables
DataSet salesData = new DataSet("CompanySales");

// Create and populate a products table
DataTable productsTable = new DataTable("Products");
productsTable.Columns.Add("ProductID", typeof(int));
productsTable.Columns.Add("ProductName", typeof(string));
productsTable.Columns.Add("Price", typeof(decimal));

// Add sample data
productsTable.Rows.Add(1, "Laptop", 999.99m);
productsTable.Rows.Add(2, "Mouse", 19.99m);
productsTable.Rows.Add(3, "Keyboard", 49.99m);

// Create and populate a sales table
DataTable salesTable = new DataTable("Sales");
salesTable.Columns.Add("SaleID", typeof(int));
salesTable.Columns.Add("ProductID", typeof(int));
salesTable.Columns.Add("Quantity", typeof(int));
salesTable.Columns.Add("Date", typeof(DateTime));

// Add sample sales data
salesTable.Rows.Add(1, 1, 5, DateTime.Now);
salesTable.Rows.Add(2, 2, 25, DateTime.Now.AddDays(-1));
salesTable.Rows.Add(3, 3, 10, DateTime.Now.AddDays(-2));

// Add tables to DataSet
salesData.Tables.Add(productsTable);
salesData.Tables.Add(salesTable);

// Create workbook and load DataSet
WorkBook workBook = WorkBook.Create();
WorkBook.LoadWorkSheetsFromDataSet(salesData, workBook);

// Save the workbook with all imported data
workBook.SaveAs("SalesReport.xlsx");
$vbLabelText   $csharpLabel

Cette approche fonctionne bien lorsqu'il s'agit d'exporter des données à partir de bases de données SQL ou de consolider des données provenant de sources multiples au format Excel.

Visitez le site How to Load Existing Spreadsheets pour en savoir plus sur l'importation de feuilles de calcul à partir de différents formats de fichiers.


Comment exporter un classeur en tant qu'ensemble de données?

La méthode ToDataSet convertit le classeur en un System.Data.DataSet, où chaque feuille de calcul devient une System.Data.DataTable. Appelez cette méthode sur le classeur Excel pour le convertir en un objet DataSet. Le paramètre useFirstRowAsColumnNames détermine s'il faut utiliser la première ligne comme nom de colonne.

:path=/static-assets/excel-content-code-examples/how-to/export-dataset-datatable-export.cs
// CET EXTRAIT DE CODE N'EST PAS DISPONIBLE !
$vbLabelText   $csharpLabel

IronXL gère automatiquement la conversion des types de données et conserve la structure des feuilles de calcul lors de l'exportation vers DataSets. Ceci est utile lors de l'intégration de données Excel dans des bases de données SQL ou de l'utilisation de données dans d'autres applications .NET.

Exemple avancé démontrant l'exportation de classeurs et le traitement de jeux de données :

using IronXL;
using System;
using System.Data;

// Load an existing Excel file
WorkBook workBook = WorkBook.Load("FinancialData.xlsx");

// Export to DataSet with column headers from first row
DataSet financialDataSet = workBook.ToDataSet(useFirstRowAsColumnNames: true);

// Process each DataTable in the DataSet
foreach (DataTable table in financialDataSet.Tables)
{
    Console.WriteLine($"Processing table: {table.TableName}");
    Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}");

    // Iterate through columns
    foreach (DataColumn column in table.Columns)
    {
        Console.WriteLine($"  Column: {column.ColumnName} ({column.DataType})");
    }

    // Process first 5 rows as example
    int rowCount = 0;
    foreach (DataRow row in table.Rows)
    {
        if (rowCount++ >= 5) break;

        // Access data by column name
        foreach (DataColumn col in table.Columns)
        {
            Console.WriteLine($"    {col.ColumnName}: {row[col]}");
        }
    }
}

// You can also export specific worksheets as DataTables
WorkSheet specificSheet = workBook.WorkSheets["Q1Sales"];
DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true);

// Use the DataTable with other .NET components
// For example, bind to a DataGridView or save to database
using IronXL;
using System;
using System.Data;

// Load an existing Excel file
WorkBook workBook = WorkBook.Load("FinancialData.xlsx");

// Export to DataSet with column headers from first row
DataSet financialDataSet = workBook.ToDataSet(useFirstRowAsColumnNames: true);

// Process each DataTable in the DataSet
foreach (DataTable table in financialDataSet.Tables)
{
    Console.WriteLine($"Processing table: {table.TableName}");
    Console.WriteLine($"Columns: {table.Columns.Count}, Rows: {table.Rows.Count}");

    // Iterate through columns
    foreach (DataColumn column in table.Columns)
    {
        Console.WriteLine($"  Column: {column.ColumnName} ({column.DataType})");
    }

    // Process first 5 rows as example
    int rowCount = 0;
    foreach (DataRow row in table.Rows)
    {
        if (rowCount++ >= 5) break;

        // Access data by column name
        foreach (DataColumn col in table.Columns)
        {
            Console.WriteLine($"    {col.ColumnName}: {row[col]}");
        }
    }
}

// You can also export specific worksheets as DataTables
WorkSheet specificSheet = workBook.WorkSheets["Q1Sales"];
DataTable q1Data = specificSheet.ToDataTable(useFirstRowAsColumnNames: true);

// Use the DataTable with other .NET components
// For example, bind to a DataGridView or save to database
$vbLabelText   $csharpLabel

Le DataSet exporté conserve les relations et les contraintes définies dans Excel, ce qui est parfait pour travailler avec des structures de données Excel complexes sans dépendances Excel Interop.

Fonctionnalités supplémentaires de DataSet/DataTable

IronXL offre des fonctionnalités avancées lorsqu'il s'agit de travailler avec DataSet et DataTable :

Gestion des types de données

IronXL fait correspondre intelligemment les types de données lors de la conversion Excel-DataSet. Les cellules numériques deviennent des types numériques appropriés (int, décimal, double), les cellules de date deviennent des objets DateTime, les cellules de texte deviennent des strings. Personnalisez ceci en définissant les formats de données des cellules avant la conversion.

Optimisation des Performances

IronXL optimise l'utilisation de la mémoire et la vitesse de traitement pour les grands ensembles de données. La bibliothèque permet d'acheminer efficacement les données en continu plutôt que de tout charger en mémoire. Convient aux applications d'entreprise traitant de gros volumes de données.

Intégration avec d'autres fonctionnalités

La fonctionnalité DataSet/DataTable s'intègre à d'autres fonctionnalités d'IronXL :

Visitez le site How to Save or Export Spreadsheets pour en savoir plus sur l'exportation de feuilles de calcul vers différents formats de fichiers.

Questions Fréquemment Posées

Comment convertir un classeur Excel en DataSet en C# ?

Avec IronXL, vous pouvez convertir un classeur Excel en un ensemble de données à l'aide de la méthode ToDataSet(). Appelez simplement WorkBook.ToDataSet(useFirstRowAsColumnNames : true) pour exporter votre classeur entier où chaque feuille devient une DataTable dans le DataSet résultant.

Puis-je importer un ensemble de données dans un classeur Excel par programme ?

Oui, IronXL fournit la méthode LoadWorkSheetsFromDataSet() pour importer un ensemble de données dans un classeur. Créez un classeur en utilisant WorkBook.Create(), puis passez l'ensemble de données et le classeur à cette méthode statique. Chaque tableau de données devient une feuille de calcul distincte.

Qu'advient-il des noms des tableaux de données lors de l'importation dans Excel ?

Lorsque vous utilisez la méthode LoadWorkSheetsFromDataSet() d'IronXL, chaque nom de table de données devient automatiquement le nom de la feuille de calcul dans Excel, ce qui permet de conserver l'organisation de vos données et d'identifier facilement les différentes sources de données.

La bibliothèque préserve-t-elle les en-têtes de colonnes lors de la conversion des jeux de données ?

Oui, IronXL préserve les en-têtes de colonnes et les types de données lors de la conversion entre Excel et les DataSets. Lors de l'utilisation de ToDataSet() avec useFirstRowAsColumnNames réglé sur true, la première ligne de chaque feuille de calcul est reconnue comme en-tête de colonne.

Comment les tableaux multiples sont-ils gérés lors de la conversion entre Excel et DataSets ?

IronXL fait automatiquement correspondre chaque feuille de calcul Excel à une DataTable correspondante lors de la conversion en DataSet, et vice versa. Lors de l'importation d'un DataSet avec plusieurs tables, chaque DataTable crée une feuille de travail séparée dans le classeur.

Quel est le code minimal nécessaire pour exporter Excel vers DataSet ?

Le code minimal pour exporter un classeur Excel vers un DataSet à l'aide d'IronXL.Excel ne comporte qu'une seule ligne : DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames : true) ; Ceci convertit votre classeur entier avec un mappage automatique de la feuille à la table.

Curtis Chau
Rédacteur technique

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 ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 1,802,965 | Version : 2025.12 vient de sortir