Cómo Importar y Exportar como un DataSet en C# | IronXL

Cómo Importar y Exportar DataSet/DataTable en C

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

IronXL convierte entre libros de Excel y conjuntos de datos con llamadas de método único: use LoadWorkSheetsFromDataSet() para importar conjuntos de datos en libros de trabajo y ToDataSet() para exportar libros de trabajo como conjuntos de datos con mapeo automático de hoja a tabla.

Un DataSet es una representación en memoria de datos que contiene múltiples tablas, relaciones y restricciones relacionadas. Se utiliza para trabajar con datos de bases de datos, XML y otras fuentes. Al trabajar con archivos Excel en C# , DataSet proporciona una estructura .NET familiar que se integra con aplicaciones basadas en datos.

Un DataTable representa una sola tabla con filas y columnas dentro de un DataSet. IronXL asigna automáticamente cada hoja de cálculo de Excel a un DataTable correspondiente, preservando los encabezados de columna y los tipos de datos durante la conversión.

Inicio rápido: Exportar libro de trabajo como System.Data.DataSet instantáneamente

Para convertir un libro de trabajo en un DataSet se necesita una sola llamada de método. Este ejemplo exporta todo el libro de trabajo (cada hoja como DataTable) utilizando ToDataSet con reconocimiento de encabezado de primera fila opcional.

  1. Instala IronXL con el Administrador de Paquetes NuGet

    PM > Install-Package IronXl.Excel
  2. Copie y ejecute este fragmento de código.

    DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true);
  3. Despliegue para probar en su entorno real

    Comienza a usar IronXL en tu proyecto hoy mismo con una prueba gratuita

    arrow pointer


¿Cómo se carga un conjunto de datos en un libro de trabajo?

Utilice el método estático LoadWorkSheetsFromDataSet para importar un DataSet en un libro de trabajo. Este método requiere objetos DataSet y Workbook. Primero cree el libro de trabajo utilizando el método Create. Pase el objeto DataSet y el objeto workbook al método.

:path=/static-assets/excel/content-code-examples/how-to/export-dataset-datatable-load.cs
using IronXL;
using System.Data;

// Create dataset
DataSet dataSet = new DataSet();

// Create workbook
WorkBook workBook = WorkBook.Create();

// Load DataSet to workBook
WorkBook.LoadWorkSheetsFromDataSet(dataSet, workBook);
$vbLabelText   $csharpLabel

Cada DataTable dentro del DataSet se convierte en una hoja de trabajo separada. El nombre de la tabla se convierte en el nombre de la hoja de cálculo, manteniendo la organización de los datos. Para múltiples fuentes de datos, combine esto con creación de nuevas hojas de cálculo o gestión de hojas de trabajo existentes.

A continuación se muestra un ejemplo completo de cómo cargar un DataSet con varias tablas:

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

Este enfoque funciona bien al exportar datos de bases de datos SQL o consolidar datos de múltiples fuentes en formato Excel.

Visite Cómo cargar hojas de cálculo existentes para aprender a importar hojas de cálculo desde varios formatos de archivo.


¿Cómo se exporta un libro de trabajo como un conjunto de datos?

El método ToDataSet convierte el libro de trabajo en un System.Data.DataSet , donde cada hoja de trabajo se convierte en un System.Data.DataTable . Llame a este método en el libro de Excel para convertirlo en un objeto DataSet. El parámetro useFirstRowAsColumnNames determina si se utiliza la primera fila como nombres de columna.

:path=/static-assets/excel-content-code-examples/how-to/export-dataset-datatable-export.cs
// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
$vbLabelText   $csharpLabel

IronXL maneja automáticamente la conversión de tipos de datos y mantiene la estructura de la hoja de cálculo al exportar a DataSets. Esto ayuda a la hora de integrar datos de Excel con bases de datos SQL o utilizar datos en otras aplicaciones .NET.

Ejemplo avanzado de exportación de libros de trabajo y procesamiento de DataSets:

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

El DataSet exportado mantiene las relaciones y restricciones definidas en Excel, lo que es perfecto para trabajar con estructuras de datos complejas de Excel sin dependencias de interoperabilidad de Excel.

Características adicionales de DataSet/DataTable

IronXL proporciona funciones avanzadas al trabajar con DataSet y DataTable:

Manejo de tipos de datos

IronXL asigna de forma inteligente los tipos de datos durante la conversión Excel-DataSet. Las celdas numéricas se convierten en tipos numéricos apropiados (int, decimal, double), las celdas de fecha se convierten en objetos DateTime, las celdas de texto se convierten en strings. Personalícelo configurando los formatos de datos de las celdas antes de la conversión.

Optimización del rendimiento

IronXL optimiza el uso de memoria y la velocidad de procesamiento de grandes conjuntos de datos. La biblioteca transmite datos de forma eficiente en lugar de cargar todo en la memoria. Adecuado para aplicaciones empresariales que procesen grandes volúmenes de datos.

Integración con otras funciones

La funcionalidad DataSet/DataTable se integra con otras características de IronXL:

Visita Cómo guardar o exportar hojas de cálculo para aprender a exportar hojas de cálculo a varios formatos de archivo.

Preguntas Frecuentes

¿Cómo convierto un libro de Excel a un DataSet en C#?

Con IronXL, puede convertir un libro de Excel en un DataSet utilizando el método ToDataSet(). Simplemente llame a WorkBook.ToDataSet(useFirstRowAsColumnNames: true) para exportar todo su libro de trabajo donde cada hoja se convierte en una DataTable en el DataSet resultante.

¿Puedo importar un DataSet a un libro de Excel mediante programación?

Sí, IronXL proporciona el método LoadWorkSheetsFromDataSet() para importar un DataSet en un libro de trabajo. Cree un libro de trabajo utilizando WorkBook.Create(), luego pase tanto el DataSet como el libro de trabajo a este método estático. Cada DataTable se convierte en una hoja de trabajo independiente.

¿Qué ocurre con los nombres de DataTable al importarlos a Excel?

Al utilizar el método LoadWorkSheetsFromDataSet() de IronXL, cada nombre de DataTable se convierte automáticamente en el nombre de la hoja de trabajo en Excel, manteniendo su organización de datos y facilitando la identificación de diferentes fuentes de datos.

¿Conserva la biblioteca los encabezados de columna durante la conversión de DataSet?

Sí, IronXL conserva los encabezados de columna y los tipos de datos durante la conversión entre Excel y DataSets. Cuando se utiliza ToDataSet() con useFirstRowAsColumnNames establecido en true, la primera fila de cada hoja de cálculo se reconoce como encabezados de columna.

¿Cómo se gestionan las tablas múltiples al convertir entre Excel y DataSets?

IronXL asigna automáticamente cada hoja de cálculo de Excel a una DataTable correspondiente al convertir a DataSet, y viceversa. Al importar un DataSet con múltiples tablas, cada DataTable crea una hoja de trabajo separada en el libro de trabajo.

¿Cuál es el código mínimo necesario para exportar Excel a DataSet?

El código mínimo para exportar un libro de Excel a DataSet utilizando IronXL es de una sola línea: DataSet ds = WorkBook.Create().ToDataSet(useFirstRowAsColumnNames: true); Esto convierte todo su libro de trabajo con mapeo automático de hoja a tabla.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 12
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 19
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

¿Listo para empezar?
Nuget Descargas 1,890,100 | Versión: 2026.3 recién lanzado

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 17
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 24
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronXl.Excel
ejecuta una muestra observa cómo tus datos se convierten en una hoja de cálculo.