USO DE IRONXL

Datatable to Excel in C# (Tutorial de ejemplo de código)

Chaknith Bin
Chaknith Bin
26 de junio, 2022
Actualizado 7 de enero, 2024
Compartir:

Puede ser difícil modificar mediante programación una hoja de cálculo Excel, por dos razones principales. En primer lugar, al trabajar con hojas de cálculo, los usuarios deben mantener una interfaz y una estructura de documentos coherentes, lo que no siempre es sencillo. En segundo lugar, no siempre está claro qué código funcionará en situaciones concretas, sobre todo cuando se trata de cálculos sofisticados. Existen numerosas razones por las que resulta difícil crear un archivo Excel mediante programación. Los programadores deben transformar primero los datos del documento Excel en un formato legible y, a continuación, analizarlos y volver a analizarlos, lo que resulta aún más difícil. He encontrado una solución a este problema. Te enseñaré como hacer un archivo Excel y exportar programáticamente un Datatable a una hoja Excel sin ningún problema usando la librería IronXL .NET Excel. Empecemos:

Características de IronXL

  • IronXL se ejecuta en una variedad de sistemas operativos, incluyendo Windows, Linux y macOS.
  • Casi todos los .NET Frameworks son compatibles con IronXL, incluyendo Console, Windows Forms Application y Web Application.
  • IronXL hace que la lectura de archivos Excel sea sencilla y fácil.
  • Podemos cargar, editar, exportar Datatables, exportar conjuntos de datos y leer formatos de archivo de Excel como archivos XLSX, XLS, CSV, TSV, XLST, archivos XLSM, y más con IronXL.
  • IronXL nos permite guardar y exportar archivos con una variedad de extensiones, incluyendo XLS, CSV, TSV, JSON, XLSX, y otros.
  • Las fórmulas de Excel pueden ser creadas por IronXL.
  • Los formatos de datos de celda de Excel como texto, números, fórmulas, fechas, moneda, porcentajes y otros son compatibles con IronXL.
  • También ofrece numerosas opciones de ordenamiento como Rango, Columnas y Filas, entre otras.
  • El estilo de celda en IronXL incluye fuente, tamaño, patrón de fondo, borde y alineación, entre otros.
  • Podemos leer y exportar datos desde un archivo Excel utilizando IronXL.
  • IronXL no requiere que Excel o Interop estén instalados en su servidor. La API IronXL es más rápida y fácil de usar que Microsoft Office, Interop y Excel.

1 Creación de un nuevo proyecto en Visual Studio

Para utilizar la biblioteca IronXL, debemos crear un proyecto .NET en Visual Studio. Puede utilizar cualquier versión de Visual Studio, pero se recomienda la última versión. Puede crear una aplicación como Windows Forms o diferentes plantillas de proyecto, en función de sus necesidades. Utilizaré la Aplicación de Consola para este tutorial, por simplicidad.

Cómo exportar grandes datos de Datatable a Excel en C#, Figura 1: Crear una nueva interfaz de proyecto en Visual Studio

Crear una nueva interfaz de proyecto en Visual Studio

A continuación, introduzca el nombre y la ubicación del proyecto.

Cómo exportar grandes datos de Datatable a Excel en C#, Figura 2: Paso de configuración al crear un nuevo proyecto

Paso de configuración en la creación de un nuevo proyecto

A continuación, seleccione el marco siguiente. En este proyecto, vamos a utilizar .NET Core 6.

Cómo Exportar Grandes Datos Desde Datatable a Excel en C#, Figura 3: Interfaz de selección de .Net Framework

Interfaz de selección de .Net Framework

Una vez que la Aplicación crea la solución, abrirá el archivo program.cs donde puede introducir el código y construir/ejecutar la aplicación.

Cómo exportar grandes cantidades de datos de Datatable a Excel en C#, Figura 4: Archivo program.cs vacío en el nuevo proyecto

Archivo program.cs vacío en el nuevo proyecto

A continuación, podemos añadir la biblioteca para probar el código.

2 Instalación de la biblioteca IronXL

La biblioteca IronXL puede descargarse e instalarse de cuatro formas.

Estos son:

  • Uso de Visual Studio
  • Uso de la línea de comandos de Visual Studio.
  • Descarga directa desde el sitio web de NuGet.
  • Descarga directa desde el sitio web de IronXL.

2.1 Utilización de Visual Studio

Podemos instalar la librería IronXL utilizando NuGet Package Manager. Primero debe abrir el gestor de paquetes NuGet y, a continuación, buscar IronXL en la pestaña Examinar. Selecciona IronXL de los resultados de búsqueda e instálalo. Después de eso, nuestro proyecto estará listo para su uso en la biblioteca IronXL.

La siguiente captura de pantalla muestra cómo podemos abrir el gestor de paquetes NuGet en Visual Studio.

Cómo exportar grandes datos de Datatable a Excel en C#, Figura 5: Navegar al Administrador de Paquetes NuGet en Visual Studio

Navegar al Administrador de Paquetes NuGet en Visual Studio

IronXL en los resultados de búsqueda:

Cómo exportar grandes cantidades de datos de Datatable a Excel en C#, Figura 6: Buscar la biblioteca IronXL

Buscar la biblioteca de IronXL

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

A mucha gente le encanta utilizar una Consola para realizar operaciones. Así que también podemos instalarlo por Consola. Siga los siguientes pasos para instalar IronXL mediante la línea de comandos.

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

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

Cómo exportar grandes datos de Datatable a Excel en C#, Figura 7: Instalar el paquete IronXL a través de la Consola

Instalar el paquete IronXL a través de la Consola

2.3 Descarga directa desde el sitio web de NuGet

La tercera forma es descargar el paquete NuGet directamente del sitio web.

  • Visite la página oficial del paquete IronXL en NuGet.
  • Seleccione la opción de descarga de paquetes en el menú de la derecha.
  • Haga doble clic en el paquete descargado. Se instalará automáticamente.
  • A continuación, vuelva a cargar la solución y empiece a utilizarla en el proyecto.

2.4 Descarga directa desde el sitio web de IronXL

Haga clic en el enlace para descargar el paquete más reciente directamente desde el sitio web. Una vez descargado, siga los pasos a continuación para agregar el paquete al proyecto.

  • Haga clic con el botón derecho del ratón en el proyecto de la ventana de la solución.
  • A continuación, seleccione las opciones de referencia y busque la ubicación de la referencia descargada.
  • A continuación, haga clic en Aceptar para añadir la referencia.

3 Exportar tabla de datos a Excel con IronXL

IronXL nos permite exportar tablas de datos a archivos Excel fácilmente con un número limitado de pasos.

En primer lugar, tenemos que incluir el espacio de nombres de IronXL como en la captura de pantalla de código a continuación. Una vez añadido, podemos utilizar las clases y métodos IronXL en nuestro código.

Cómo exportar grandes datos de Datatable a Excel en C#, Figura 8: Incluir el espacio de nombres de IronXL antes de usar la biblioteca

Incluya namespace de IronXL antes de usar la biblioteca

IronXL nos permite crear archivos de Excel y convertirlos en objetos de libro. Tras convertirlos en objetos, podemos realizar varios tipos de operaciones. En el siguiente código de ejemplo, convertiremos un Datatable en una hoja de cálculo Excel, y entonces podremos crear un archivo Excel.

public static void ExportToExcel(string filePath)
{
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Animal", typeof(string));
    table.Rows.Add("Lion");
    table.Rows.Add("Tiger");
    table.Rows.Add("Cat");
    table.Rows.Add("Goat");
    table.Rows.Add("Panther");
    table.Rows.Add("Fox");
    table.Rows.Add("Cheetah");
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    WorkSheet ws = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        ws ["A" + (rowCount)].Value = row [0].ToString();
        rowCount++;
    }
    wb.SaveAsCsv(filePath, ";");
}
public static void ExportToExcel(string filePath)
{
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Animal", typeof(string));
    table.Rows.Add("Lion");
    table.Rows.Add("Tiger");
    table.Rows.Add("Cat");
    table.Rows.Add("Goat");
    table.Rows.Add("Panther");
    table.Rows.Add("Fox");
    table.Rows.Add("Cheetah");
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    WorkSheet ws = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        ws ["A" + (rowCount)].Value = row [0].ToString();
        rowCount++;
    }
    wb.SaveAsCsv(filePath, ";");
}
Public Shared Sub ExportToExcel(ByVal filePath As String)
	Dim table As New DataTable()
	table.Columns.Add("DataSet_Animal", GetType(String))
	table.Rows.Add("Lion")
	table.Rows.Add("Tiger")
	table.Rows.Add("Cat")
	table.Rows.Add("Goat")
	table.Rows.Add("Panther")
	table.Rows.Add("Fox")
	table.Rows.Add("Cheetah")
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
	Dim ws As WorkSheet = wb.DefaultWorkSheet
	Dim rowCount As Integer = 1
	For Each row As DataRow In table.Rows
		ws ("A" & (rowCount)).Value = row (0).ToString()
		rowCount += 1
	Next row
	wb.SaveAsCsv(filePath, ";")
End Sub
$vbLabelText   $csharpLabel

En el código anterior, estamos exportando la tabla de datos a un archivo de Excel. Primero, estamos creando un DataTable, y luego estamos creando los encabezados de columna. Después de crear las columnas, las añadimos una a una. Una vez que hemos agregado la columna, creamos el objeto WorkBook. Utilizando el objeto, podemos añadir los datos a la hoja Excel, y luego podemos guardar los datos en la ubicación. Estamos creando el objeto WorkSheet que permite crear una hoja de cálculo, y luego podemos agregar esto al objeto WorkBook.

Estamos utilizando el ciclo foreach para leer los valores de la tabla de datos uno por uno y luego añadimos el valor a la hoja de cálculo. Una vez añadidos todos los valores a la hoja de cálculo, los guardamos en un archivo CSV utilizando el método llamado SaveAsCSV - necesitamos pasar el delimitador y el nombre del archivo con la ubicación como parámetro. Un delimitador es un parámetro opcional que podemos ignorar si no es necesario.

Cómo exportar una gran cantidad de datos de Datatable a Excel en C#, Figura 9: El código completado en Visual Studio

El código completado en Visual Studio

Lo anterior es la captura de pantalla completa del código que estamos utilizando en el .NET core 6.

Resultado:

Cómo exportar grandes datos de Datatable a Excel en C#, Figura 10: El resultado al abrir el archivo en Microsoft Excel

El resultado al abrir el archivo en Microsoft Excel

Arriba está el resultado del ejemplo de código ejecutado. En la captura de pantalla, todos los datos disponibles en la tabla de datos se han añadido uno a uno a la hoja Excel recién creada.

4 Conclusiones

IronXL es una de las bibliotecas de Excel más utilizadas. No depende de ninguna otra biblioteca de terceros. Es independiente y no necesita tener instalado MS Excel. Funciona en múltiples plataformas. El precio introductorio para IronXL comienza en $749. Además, ofrece la opción de pagar una cuota de un año por la asistencia técnica y las actualizaciones del producto. IronXL proporciona cobertura de redistribución libre de regalías por un costo adicional. Para conocer más sobre los detalles de precios, visite nuestra página de licencias.

Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.
< ANTERIOR
C# Abrir Archivo Excel Programáticamente (Tutorial de Ejemplo de Código)
SIGUIENTE >
Cómo mover filas en Excel