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 DataSets con llamadas a un solo método - utilice LoadWorkSheetsFromDataSet() para importar DataSets en libros de trabajo y ToDataSet() para exportar libros de trabajo como DataSets con mapeo automático de hoja a tabla.

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

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

como-título:2(Inicio Rápido: Exportar Libro como System.Data.DataSet al Instante)

Convertir un libro de trabajo en un DataSet requiere una llamada a un método. Este ejemplo exporta todo el libro de trabajo, cada hoja como DataTable, utilizando ToDataSet con reconocimiento opcional del encabezado de la primera fila.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronXL con el gestor 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

    Empieza a utilizar IronXL en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer


Comience a utilizar IronXL

Comience a usar IronXL en su proyecto hoy con una prueba gratuita.

Primer Paso:
green 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 a un libro de trabajo. Este método requiere los objetos DataSet y Workbook. Cree primero 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
// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
' ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
$vbLabelText   $csharpLabel

Cada DataTable dentro del DataSet se convierte en una hoja de cálculo independiente. 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.

He aquí un ejemplo completo de carga de 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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$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 una 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!
' ¡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
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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

Características adicionales de DataSet/DataTable

IronXL proporciona funciones avanzadas cuando se trabaja 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, doble), las celdas de fecha se convierten en objetos DateTime, las celdas de texto se convierten en cadenas. 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.

Chaknith Bin
Ingeniero de Software
Chaknith trabaja en IronXL e IronBarcode. Tiene un profundo conocimiento en C# y .NET, ayudando a mejorar el software y apoyar a los clientes. Sus conocimientos derivados de las interacciones con los usuarios contribuyen a mejores productos, documentación y experiencia en general.
¿Listo para empezar?
Nuget Descargas 1,765,830 | Versión: 2025.12 recién lanzado