USO DE IRONXL

C# Manera más rápida de exportar DataTable a Excel

Actualizado 26 de septiembre, 2024
Compartir:

Al trabajar con hojas de cálculo, la aplicación Microsoft Excel es una herramienta de hoja de cálculo popular diseñada para gestionar grandes conjuntos de datos en un formato tabular. Ofrece características potentes como cálculos complejos, visualización de datos a través de gráficos y tablas, tablas dinámicas y soporte para automatización mediante Visual Basic para Aplicaciones. (VBA). Sus herramientas robustas de análisis de datos y visualización han hecho de Excel una opción líder en diversas industrias. Con Excel, puedes crear, editar, ver y compartir archivos fácilmente, simplificando tus tareas de gestión de datos.

En C#, el objeto DataTable en la biblioteca ADO.NET representa datos tabulares dentro de un programa, de manera similar a una hoja de cálculo Excel. Organiza los datos en filas y columnas, lo que permite una manipulación y exportación sencilla. Al igual que Excel, DataTable admite opciones de filtrado, ordenamiento y formato, lo que lo convierte en una herramienta indispensable para gestionar rangos de datos en C#. Sin embargo, DataTable se crea en tiempo de ejecución y sus datos se pierden cuando se cierra la aplicación, a menos que se exporten a un formato más permanente, como un archivo Excel o un archivo CSV.

Hoy exploraremos cómo crear un DataTable en C# y exportar sus datos a un documento de Excel usando IronXL, una poderosa biblioteca de Excel para .NET.

IronXL: Una biblioteca de Excel para .NET

IronXL es una biblioteca de C# .NET que simplifica el proceso de crear archivos Excel. Con IronXL, puedes crear nuevas hojas de cálculo, editar las existentes, trabajar con fórmulas de Excel, dar estilo a las celdas de tu hoja de cálculo y más. Su amplia gama de características hace que trabajar con archivos de Excel de manera programática sea muy fácil y, lo que es más importante, IronXL funciona sin Microsoft Office Interop. Esto significa que no hay necesidad de instalar Microsoft Office ni ninguna otra dependencia especial.

Con IronXL, puedes guardar o exportar datos en diferentes formatos como XLS y XLSX, datos CSV y TSV, JSON, XML y HTML, Binario y Matriz de Bytes. También cuenta con sólidas características de seguridad para libros de trabajo, como la adición de permisos y contraseñas, y permite editar los metadatos del libro de trabajo.

Pasos para exportar datos de una tabla de datos a un archivo Excel

Requisitos previos

Para usar IronXL en la exportación de datos de una datatable a un archivo de Excel en C#, necesitamos que los siguientes componentes estén instalados en la computadora local. Veámoslos uno por uno.

  1. Visual Studio - Visual Studio es el IDE para la programación en C# y debe estar instalado. Puedes descargar e instalar la última versión desde Sitio web de Visual Studio.

    • Una vez que el IDE esté configurado, se debe crear una aplicación de consola/formulario de Windows que ayude a exportar la tabla de datos a Excel. Las siguientes capturas de pantalla muestran cómo crear un proyecto.

      Crear un proyecto

      Ahora, elige tu tipo de proyecto. En nuestro ejemplo, crearemos una aplicación de consola.

      Consola App

      Nombra tu proyecto y elige la ubicación donde se guardará.

      Nombrar proyecto

      Finalmente, elija su .NET Framework y haga clic en "Crear".

      .NET Framework

      Después de hacer clic en Crear en la última captura de pantalla, se crea el proyecto con el nombre "DemoApp".

  2. Biblioteca IronXL - Se debe descargar e instalar la biblioteca IronXL en el proyecto de Visual Studio. Hay múltiples formas de hacerlo.

    • Usando Visual Studio - Proporciona el Administrador de Paquetes NuGet para instalar IronXL. Puede acceder a él a través del menú Herramientas o del Explorador de soluciones. Las siguientes capturas de pantalla ayudan a instalar IronXL. Primero, navega a "Herramientas" en la barra superior, o haz clic derecho dentro del explorador de soluciones.

      Explorador de soluciones

      Herramientas - NuGet Package Manager

      Ve a Administrar paquetes de NuGet para la solución y busca IronXL. Luego, solo tienes que presionar "Instalar" y la biblioteca IronXL se añadirá a tu proyecto.

      Explorar IronXL

    • Símbolo del sistema para desarrolladores - Abra el Símbolo del sistema para desarrolladores desde el menú Herramientas de Visual Studio o desde la carpeta Visual Studio. Escriba el siguiente comando para descargar e instalar IronXL en su proyecto:
PM > Install-Package IronXL.Excel
PM > Install-Package IronXL.Excel
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'PM > Install-Package IronXL.Excel
VB   C#
  1. Agregar los Espacios de Nombres Necesarios - Para crear un DataTable y usar IronXL, ambos deben ser referenciados en la parte superior del archivo Program.cs.
using IronXL; //add reference...
   using System.Data;
using IronXL; //add reference...
   using System.Data;
Imports IronXL 'add reference...
   Imports System.Data
VB   C#

Una vez que se cumplan todos los requisitos previos, es hora de exportar los datos del datatable a la hoja de Excel.

Crear una DataTable en C#

El siguiente código crea una nueva tabla de datos con dos encabezados de columna y múltiples filas:

//new datatable dt...
DataTable dt = new DataTable();
//add column names...
dt.Columns.Add("Animal");
dt.Columns.Add("Sound");
dt.Rows.Add("Lion", "Roars"); // first row...
dt.Rows.Add("Dog", "Barks");
dt.Rows.Add("Cat", "Meows");
dt.Rows.Add("Goat", "Bleats");
dt.Rows.Add("Wolf", "Howls");
dt.Rows.Add("Cheetah", "Purrs");
//new datatable dt...
DataTable dt = new DataTable();
//add column names...
dt.Columns.Add("Animal");
dt.Columns.Add("Sound");
dt.Rows.Add("Lion", "Roars"); // first row...
dt.Rows.Add("Dog", "Barks");
dt.Rows.Add("Cat", "Meows");
dt.Rows.Add("Goat", "Bleats");
dt.Rows.Add("Wolf", "Howls");
dt.Rows.Add("Cheetah", "Purrs");
'new datatable dt...
Dim dt As New DataTable()
'add column names...
dt.Columns.Add("Animal")
dt.Columns.Add("Sound")
dt.Rows.Add("Lion", "Roars") ' first row...
dt.Rows.Add("Dog", "Barks")
dt.Rows.Add("Cat", "Meows")
dt.Rows.Add("Goat", "Bleats")
dt.Rows.Add("Wolf", "Howls")
dt.Rows.Add("Cheetah", "Purrs")
VB   C#

Primero, creamos un nuevo DataTable llamado "dt". Luego, usando Columns.Add podemos añadir un número especificado de columnas a la tabla de datos por nombre, en nuestro ejemplo, tenemos dos columnas llamadas "Animal" y "Sound". Luego usamos Rows.Add para agregar nuevas filas, colocando el contenido de cada fila dentro de los corchetes. El contenido está dividido por comas, separando cada cadena por columna.

Crear Archivo Excel usando IronXL en C#

Al crear tipos de archivo Excel desde cero con IronXL, es un proceso de dos pasos y muy fácil de implementar en C#. IronXL primero crea un libro de Excel y luego ayuda a agregar una hoja de trabajo. El siguiente código de ejemplo demuestra cómo crear un libro de trabajo junto con la hoja de trabajo:

//create new workbook...
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet ws = wb.DefaultWorkSheet;
//create new workbook...
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet ws = wb.DefaultWorkSheet;
'create new workbook...
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim ws As WorkSheet = wb.DefaultWorkSheet
VB   C#

Exportando Datos de una Tabla de Datos a una Hoja de Excel usando IronXL

Utilizar IronXL para agregar valores a la hoja de trabajo simplifica todo el proceso, ya que puede realizar esta tarea con un código mínimo. Aquí aprenderemos a exportar datos desde la tabla de datos creado en la sección anterior a la hoja de cálculo Excel recién creada. Veamos el código paso a paso.

Agregar encabezado de columna a la hoja de cálculo de Excel

ws["A1"].Value = dt.Columns[0].ToString();
ws["B1"].Value = dt.Columns[1].ToString();
int rowCount = 2;
ws["A1"].Value = dt.Columns[0].ToString();
ws["B1"].Value = dt.Columns[1].ToString();
int rowCount = 2;
ws("A1").Value = dt.Columns(0).ToString()
ws("B1").Value = dt.Columns(1).ToString()
Dim rowCount As Integer = 2
VB   C#

En el código anterior, a la columna "A1" de la hoja de Excel se le asigna el valor de la columna 1 de la tabla de datos en el índice 0, y el siguiente valor de la columna "B1" de Excel se asigna desde la columna 2 en el índice 1 en la tabla de datos. La variable rowCount se establece en un valor de 2 para leer filas de la tabla de datos comenzando desde la fila dos, esto asegura que no contemos la fila de encabezado.

Agregar filas a la hoja de cálculo de Excel

El siguiente código leerá cada fila de la tabla de datos y la asignará a una nueva fila en el archivo de Excel:

foreach (DataRow row in dt.Rows)
{
    ws["A" + (rowCount)].Value = row[0].ToString();
    ws["B" + (rowCount)].Value = row[1].ToString();
    rowCount++;
}
foreach (DataRow row in dt.Rows)
{
    ws["A" + (rowCount)].Value = row[0].ToString();
    ws["B" + (rowCount)].Value = row[1].ToString();
    rowCount++;
}
For Each row As DataRow In dt.Rows
	ws("A" & (rowCount)).Value = row(0).ToString()
	ws("B" & (rowCount)).Value = row(1).ToString()
	rowCount += 1
Next row
VB   C#

La variable rowCount se incrementa cada vez para que se lea una nueva fila del datatable a Excel celdas de la hoja de cálculo en el código anterior.

Guardar archivo Excel

Finalmente, guarda el archivo Excel usando el SaveAs() método.

wb.SaveAs("DataTable_to_Excel_IronXL.xlsx");
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx");
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx")
VB   C#

El archivo también se puede guardar en otros formatos, por ejemplo, CSV. (Valores separados por comas)JSON, XML.

wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv");
wb.SaveAsJson("DataTable_to_Excel_IronXL.json");
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml");
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv");
wb.SaveAsJson("DataTable_to_Excel_IronXL.json");
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml");
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv")
wb.SaveAsJson("DataTable_to_Excel_IronXL.json")
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml")
VB   C#

También puedes guardarlo con un delimitador personalizado.

Salida

El resultado final del archivo es el siguiente:

Salida de DataTable a Excel

Resumen

En este artículo, demostramos cómo crear un DataTable con columnas y filas en C#, seguido de la generación de un libro de Excel con una hoja de trabajo predeterminada utilizando IronXL. Luego exportamos con éxito los datos tabulares del DataTable a un archivo de Excel y los guardamos en formato .xlsx.

IronXL es una biblioteca de C# fácil de usar que permite a los desarrolladores trabajar con archivos de Excel sin problemas, incluso sin tener MS Excel instalado. Admite la exportación de datos desde varios formatos, como archivos CSV, para su posterior manipulación y cálculo.

Para obtener más información sobre IronXL y su conjunto de características robustas, asegúrese de consultar su extensa documentación. ¿Quieres probarlo tú mismo? IronXL también ofrece un prueba gratuita con acceso completo a todas las funciones, para que puedas comenzar a explorar cómo esta poderosa biblioteca puede mejorar tus proyectos de hojas de cálculo de inmediato!

< ANTERIOR
Cómo Exportar Datatable a Excel en VB.NET
SIGUIENTE >
Cómo leer archivos Excel en C#

¿Listo para empezar? Versión: 2024.9 acaba de salir

Descarga gratuita de NuGet Descargas totales: 1,013,614 Ver licencias >