Saltar al pie de página
USANDO IRONXL

Cómo exportar DataTable a Excel en ASP.NET Core

Este artículo explorará las diferentes maneras de exportar DataTable a un archivo de Excel y los beneficios de hacerlo.

1. IronXL

IronXL es una poderosa biblioteca .NET que proporciona a los desarrolladores la capacidad de leer, escribir y manipular archivos Excel utilizando ASP.NET. Ofrece una serie de características que simplifican el proceso de trabajo con archivos Excel, como extracción de datos, formato y validación.

IronXL puede manejar formatos de archivo tanto XLS como XLSX, lo que lo convierte en una herramienta versátil para trabajar con archivos Excel. También admite una variedad de otros formatos de archivo como CSV y TSV, permitiendo a los usuarios trabajar con diferentes fuentes de datos. Este artículo explorará las diferentes características de IronXL y cómo puede ayudar a los desarrolladores a agilizar el proceso de trabajo con archivos Excel.

2. Requisitos previos

Requisitos previos para exportar datos de DataTable a Excel usando la biblioteca IronXL:

  • Para crear un proyecto ASP.NET, se necesita tener instalado Visual Studio en su sistema. Si no tiene Visual Studio, puede descargarlo desde el sitio web de Microsoft.
  • Antes de crear un proyecto ASP.NET, necesita asegurarse de que ASP.NET esté instalado en su sistema. Puede verificar esto yendo al Panel de Control y comprobando la opción 'Activar o desactivar las características de Windows'. Asegúrese de que la opción "ASP.NET" esté habilitada.
  • Para poder exportar datos de DataTable a un archivo Excel usando la biblioteca IronXL, debe tenerla instalada. Puede instalarla descargando el paquete IronXL NuGet desde el Administrador de Paquetes NuGet dentro de Visual Studio.

3. Creación de un nuevo proyecto ASP.NET Core

Para utilizar la biblioteca IronXL con Excel, necesita crear un proyecto .NET en Visual Studio. Puede utilizar cualquier versión de Visual Studio, pero se recomienda usar la última versión. Dependiendo de sus requisitos, puede elegir entre diferentes plantillas de proyectos, como Windows Forms. Para facilitar las cosas, se utilizará la Aplicación de Consola para este tutorial.

Cómo exportar Datatable a Excel en ASP.NET, Figura 1: Crear un nuevo proyecto en Visual Studio Crea un nuevo proyecto en Visual Studio

Después de seleccionar el tipo de Proyecto, proporcione un nombre para el proyecto y designe su ubicación. Elija el Framework deseado, como .NET Core 6, para el proyecto.

Cómo exportar Datatable a Excel en ASP.NET, Figura 2: Configurar el nuevo proyecto Configurar el nuevo proyecto

Una vez creada la solución, se abrirá el archivo Program.cs, permitiéndole ingresar código y construir/ejecutar la aplicación.

Cómo exportar Datatable a Excel en ASP.NET, Figura 3: selección de .NET Framework Selección del Framework .NET

Finalmente, puede incorporar la biblioteca para probar el código.

4. Instalar IronXL

La Biblioteca de IronXL puede descargarse e instalarse de diferentes maneras.

Estas son:

  • Usando paquetes NuGet de Visual Studio
  • Usando la Línea de Comandos de Visual Studio.

4.1 Uso de Visual Studio

Para instalar la biblioteca IronXL, el enfoque más simple es usar el Administrador de Paquetes NuGet en Visual Studio. Simplemente abra el Administrador de Paquetes NuGet y busque IronXL en la pestaña de Exploración. Una vez que haya encontrado IronXL en los resultados de búsqueda, selecciónelo y continúe con la instalación. Una vez completada la instalación, puede comenzar a usar la biblioteca IronXL en su proyecto.

La siguiente captura de pantalla muestra cómo abrir el Administrador de Paquetes NuGet en Visual Studio.

Cómo exportar Datatable a Excel en ASP.NET, Figura 4: Navegar al Administrador de Paquetes NuGet Navega al Administrador de Paquetes NuGet

IronXL en los resultados de búsqueda:

Cómo exportar Datatable a Excel en ASP.NET, Figura 5: Buscar e instalar el paquete IronXL en la interfaz del Administrador de Paquetes NuGet Buscar e instalar el paquete IronXL en la interfaz del Administrador de Paquetes NuGet

4.2 Uso de la línea de comandos de Visual Studio

Muchas personas prefieren instalar paquetes utilizando la interfaz de línea de comandos. Para instalar IronXL usando la línea de comandos, siga estos pasos:

  • En Visual Studio, vaya a Herramientas > Administrador de Paquetes NuGet > Consola de Administrador de Paquetes.
  • Ingrese la siguiente línea en la pestaña de la Consola del Administrador de Paquetes:
Install-Package IronXL.Excel

Ahora el paquete se descargará/instalará en el proyecto actual y estará listo para usar.

Cómo exportar Datatable a Excel en ASP.NET, Figura 6: Progreso de instalación en la Consola del Administrador de Paquetes Progreso de la instalación en la Consola del Administrador de Paquetes

5. Creación de un archivo de Excel usando DataTable DT con IronXL

Exportar datos de tablas de datos al formato de archivo Excel es bastante popular. Usando IronXL, puede fácilmente exportar datos de DataTable a un documento Excel. El ejemplo de código de muestra adjunto a continuación convertirá un DataTable a una hoja de trabajo de Excel guardada en el formato de archivo XLSX.

5.1. Tabla de datos a archivo de Excel

Primero, necesita incluir el espacio de nombres de IronXL y otras dependencias. Luego puede comenzar a escribir el siguiente código, como se muestra a continuación.

using IronXL;
using System.Data;

class Program
{
    static void Main()
    {
        // Create a new DataTable.
        DataTable dt = new DataTable();
        dt.Columns.Add("DataSet", typeof(string)); // Add a column to the DataTable.

        // Add rows to the DataTable.
        dt.Rows.Add("Pen");
        dt.Rows.Add("Paper");
        dt.Rows.Add("Book");
        dt.Rows.Add("Cat");
        dt.Rows.Add("Panther");
        dt.Rows.Add("Cell");
        dt.Rows.Add("Bag");
        dt.Rows.Add("Bed");
        dt.Rows.Add("Fan");
        dt.Rows.Add("Smoke");

        // Create a new workbook.
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        // Get the default worksheet.
        WorkSheet ws = wb.DefaultWorkSheet;
        // Start adding data from row 1.
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable.
        foreach (DataRow row in dt.Rows)
        {
            ws["A" + (rowCount)].Value = row[0].ToString();
            rowCount++;
        }

        // Save the workbook as an XLSX file.
        wb.SaveAs("datatable.xlsx");
    }
}
using IronXL;
using System.Data;

class Program
{
    static void Main()
    {
        // Create a new DataTable.
        DataTable dt = new DataTable();
        dt.Columns.Add("DataSet", typeof(string)); // Add a column to the DataTable.

        // Add rows to the DataTable.
        dt.Rows.Add("Pen");
        dt.Rows.Add("Paper");
        dt.Rows.Add("Book");
        dt.Rows.Add("Cat");
        dt.Rows.Add("Panther");
        dt.Rows.Add("Cell");
        dt.Rows.Add("Bag");
        dt.Rows.Add("Bed");
        dt.Rows.Add("Fan");
        dt.Rows.Add("Smoke");

        // Create a new workbook.
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        // Get the default worksheet.
        WorkSheet ws = wb.DefaultWorkSheet;
        // Start adding data from row 1.
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable.
        foreach (DataRow row in dt.Rows)
        {
            ws["A" + (rowCount)].Value = row[0].ToString();
            rowCount++;
        }

        // Save the workbook as an XLSX file.
        wb.SaveAs("datatable.xlsx");
    }
}
Imports IronXL
Imports System.Data

Friend Class Program
	Shared Sub Main()
		' Create a new DataTable.
		Dim dt As New DataTable()
		dt.Columns.Add("DataSet", GetType(String)) ' Add a column to the DataTable.

		' Add rows to the DataTable.
		dt.Rows.Add("Pen")
		dt.Rows.Add("Paper")
		dt.Rows.Add("Book")
		dt.Rows.Add("Cat")
		dt.Rows.Add("Panther")
		dt.Rows.Add("Cell")
		dt.Rows.Add("Bag")
		dt.Rows.Add("Bed")
		dt.Rows.Add("Fan")
		dt.Rows.Add("Smoke")

		' Create a new workbook.
		Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
		' Get the default worksheet.
		Dim ws As WorkSheet = wb.DefaultWorkSheet
		' Start adding data from row 1.
		Dim rowCount As Integer = 1

		' Populate the worksheet with data from the DataTable.
		For Each row As DataRow In dt.Rows
			ws("A" & (rowCount)).Value = row(0).ToString()
			rowCount += 1
		Next row

		' Save the workbook as an XLSX file.
		wb.SaveAs("datatable.xlsx")
	End Sub
End Class
$vbLabelText   $csharpLabel

Resultado

A continuación se muestra el resultado del código fuente anterior, mostrando cómo se ven los datos en el archivo Excel.

Cómo exportar Datatable a Excel en ASP.NET, Figura 7: El archivo Excel de salida El archivo Excel de salida

5.2. DataTable a formatos de archivo de Excel compatibles

Usando IronXL, también puede convertir DataTable a diferentes formatos de archivo admitidos por Excel, como archivos CSV. Usaremos el ejemplo de abajo, pero esta vez lo guardaremos como un archivo CSV. Esto es todo lo que necesita hacer para guardar el libro de trabajo en un formato de archivo diferente.

using IronXL;
using System.Data;

class Program
{
    static void Main()
    {
        // Create a new DataTable.
        DataTable dt = new DataTable();
        dt.Columns.Add("DataSet", typeof(string)); // Add a column to the DataTable.

        // Add rows to the DataTable.
        dt.Rows.Add("Pen");
        dt.Rows.Add("Paper");
        dt.Rows.Add("Book");
        dt.Rows.Add("Cat");
        dt.Rows.Add("Panther");
        dt.Rows.Add("Cell");
        dt.Rows.Add("Bag");
        dt.Rows.Add("Bed");
        dt.Rows.Add("Fan");
        dt.Rows.Add("Smoke");

        // Create a new workbook.
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        // Get the default worksheet.
        WorkSheet ws = wb.DefaultWorkSheet;
        // Start adding data from row 1.
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable.
        foreach (DataRow row in dt.Rows)
        {
            ws["A" + (rowCount)].Value = row[0].ToString();
            rowCount++;
        }

        // Save the workbook as a CSV file.
        wb.SaveAsCsv("datatable.csv");
    }
}
using IronXL;
using System.Data;

class Program
{
    static void Main()
    {
        // Create a new DataTable.
        DataTable dt = new DataTable();
        dt.Columns.Add("DataSet", typeof(string)); // Add a column to the DataTable.

        // Add rows to the DataTable.
        dt.Rows.Add("Pen");
        dt.Rows.Add("Paper");
        dt.Rows.Add("Book");
        dt.Rows.Add("Cat");
        dt.Rows.Add("Panther");
        dt.Rows.Add("Cell");
        dt.Rows.Add("Bag");
        dt.Rows.Add("Bed");
        dt.Rows.Add("Fan");
        dt.Rows.Add("Smoke");

        // Create a new workbook.
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        // Get the default worksheet.
        WorkSheet ws = wb.DefaultWorkSheet;
        // Start adding data from row 1.
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable.
        foreach (DataRow row in dt.Rows)
        {
            ws["A" + (rowCount)].Value = row[0].ToString();
            rowCount++;
        }

        // Save the workbook as a CSV file.
        wb.SaveAsCsv("datatable.csv");
    }
}
Imports IronXL
Imports System.Data

Friend Class Program
	Shared Sub Main()
		' Create a new DataTable.
		Dim dt As New DataTable()
		dt.Columns.Add("DataSet", GetType(String)) ' Add a column to the DataTable.

		' Add rows to the DataTable.
		dt.Rows.Add("Pen")
		dt.Rows.Add("Paper")
		dt.Rows.Add("Book")
		dt.Rows.Add("Cat")
		dt.Rows.Add("Panther")
		dt.Rows.Add("Cell")
		dt.Rows.Add("Bag")
		dt.Rows.Add("Bed")
		dt.Rows.Add("Fan")
		dt.Rows.Add("Smoke")

		' Create a new workbook.
		Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
		' Get the default worksheet.
		Dim ws As WorkSheet = wb.DefaultWorkSheet
		' Start adding data from row 1.
		Dim rowCount As Integer = 1

		' Populate the worksheet with data from the DataTable.
		For Each row As DataRow In dt.Rows
			ws("A" & (rowCount)).Value = row(0).ToString()
			rowCount += 1
		Next row

		' Save the workbook as a CSV file.
		wb.SaveAsCsv("datatable.csv")
	End Sub
End Class
$vbLabelText   $csharpLabel

Cómo exportar Datatable a Excel en ASP.NET, Figura 8: El archivo CSV de salida El archivo CSV de salida

6. Conclusión

Exportar un DataTable a Excel es un paso crucial en el análisis y gestión de datos. Las hojas de cálculo de Excel son ampliamente utilizadas para la visualización y presentación de datos, y la biblioteca IronXL ofrece una variedad de características para simplificar el proceso de trabajo con archivos Excel en ASP.NET. Este artículo cubrió los pasos para crear un nuevo proyecto ASP.NET, instalar IronXL y usarlo para exportar datos de un DataTable a un archivo Excel. Además, demostró cómo guardar el libro de trabajo en diferentes formatos de archivo, como CSV. Al utilizar IronXL, los desarrolladores pueden agilizar el proceso de trabajo con archivos Excel y crear presentaciones visualmente atractivas de sus datos.

Para aprender más sobre IronXL y exportar DataTable a diferentes formatos de Excel, visite el siguiente tutorial.

IronXL es gratis para instalar y usar para propósitos de desarrollo no comercial. Está disponible una prueba gratuita para pruebas en producción. Consulte los planes de precios para obtener más detalles sobre precios y licencias.

Los usuarios también pueden beneficiarse de la Iron Suite, una colección de cinco bibliotecas profesionales que incluyen IronXL, IronPDF y más.

Preguntas Frecuentes

¿Cómo puedo exportar un DataTable a un archivo Excel en ASP.NET Core?

Para exportar un DataTable a Excel en ASP.NET Core usando IronXL, necesitas crear un DataTable, llenarlo con datos, y luego utilizar IronXL para crear un nuevo libro de trabajo. Puedes guardar el libro de trabajo en formatos como XLSX o CSV usando los métodos de IronXL.

¿Cuáles son los requisitos previos para usar IronXL en un proyecto ASP.NET?

Antes de usar IronXL en un proyecto ASP.NET, asegúrate de tener Visual Studio instalado para crear un proyecto ASP.NET e instalar la biblioteca IronXL mediante NuGet Package Manager. ASP.NET debe estar correctamente configurado en tu entorno de desarrollo también.

¿Cómo instalo IronXL en mi proyecto usando Visual Studio?

Puedes instalar IronXL en tu proyecto usando el Administrador de Paquetes NuGet en Visual Studio buscando IronXL y haciendo clic en 'Instalar'. Alternativamente, utiliza la Consola del Administrador de Paquetes con el comando: Install-Package IronXL.Excel.

¿Puedo guardar datos de DataTable en diferentes formatos de archivo usando IronXL?

Sí, IronXL admite guardar datos de DataTable en varios formatos de archivo, incluidos XLSX y CSV. Usa métodos como SaveAs o SaveAsCsv para especificar el formato de archivo deseado.

¿Es IronXL adecuado para el desarrollo no comercial?

IronXL está disponible para instalación y uso gratuito en desarrollo no comercial. También hay una prueba gratuita para pruebas de producción. Para uso comercial, los detalles de licencias están disponibles en el sitio web de Iron Software.

¿Cuáles son los beneficios de usar IronXL para exportar DataTable a Excel?

IronXL simplifica la exportación de DataTable a Excel proporcionando métodos fáciles de usar para la manipulación y exportación de datos. Soporta múltiples formatos de archivo y ayuda a agilizar los procesos de visualización y presentación de datos en Excel.

¿Cómo creo un nuevo proyecto de ASP.NET Core para exportar DataTable a Excel?

Para crear un nuevo proyecto de ASP.NET Core en Visual Studio, selecciona el tipo de proyecto, proporciona un nombre y una ubicación, y elige la versión apropiada del marco .NET. Una vez configurado, integra IronXL para manejar exportaciones de archivos Excel.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más