
C# La forma más rápida de exportar DataTable a Excel
Al trabajar con hojas de cálculo, la aplicación Microsoft Excel es una herramienta popular diseñada para gestionar grandes conjuntos de datos en un formato tabular. Ofrece potentes características como cálculos complejos, visualización de datos a través de gráficos y tablas dinámicas, y soporte para la automatización mediante Visual Basic para Aplicaciones (VBA). Sus robustas herramientas de análisis de datos y visualización han hecho de Excel una elecció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, al igual que una hoja de Excel. Organiza los datos en filas y columnas, permitiendo fácil manipulación y exportación. Al igual que Excel, DataTable admite opciones de filtrado, clasificación y formato, convirtiéndolo en una herramienta esencial para gestionar rangos de datos en C#. Sin embargo, DataTable se crea en tiempo de ejecución y sus datos se pierden cuando la aplicación se cierra, a menos que se exporten a un formato más permanente, como un archivo de Excel o CSV.
Hoy, exploraremos cómo crear un DataTable en C# y exportar sus datos a un documento de Excel usando IronXL, una potente biblioteca de Excel for .NET.
IronXL: una biblioteca de Excel .NET
IronXL es una biblioteca C# .NET que simplifica el proceso de creación de archivos de 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 rica gama de características facilita el trabajo con archivos de Excel de manera programática, y, lo que es más importante, IronXL funciona sin la Interoperabilidad de Microsoft Office. Esto significa que no es necesario instalar Microsoft Office ni otras dependencias especiales.
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 de libro de trabajo, como agregar permisos y contraseñas, y te permite editar los metadatos del libro de trabajo.
Pasos para exportar datos de DataTable a un archivo de Excel
Prerrequisitos
Para usar IronXL en la exportación de datos de DataTable a archivo Excel en C#, necesitamos tener los siguientes componentes instalados en una computadora local. Vamos a revisarlas una por una.
-
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 el sitio web de Visual Studio.
- Una vez configurado el IDE, se necesita crear una aplicación de Consola/formulario de Windows que ayudará a exportar DataTable a Excel. Las siguientes capturas de pantalla muestran cómo crear un proyecto.

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

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

Finalmente, elige tu .NET Framework, y haz clic en 'Crear'.

Después de hacer clic en Crear en la última captura de pantalla, el proyecto con el nombre "DemoApp" es creado.
-
Biblioteca IronXL - La biblioteca IronXL debe descargarse e instalarse en el proyecto de Visual Studio. Hay múltiples maneras de hacerlo.
- Usando Visual Studio - Proporciona el Administrador de Paquetes NuGet para instalar IronXL. Puedes 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 de tu explorador de soluciones.


Ve a Administrar Paquetes NuGet para Solución, y busca IronXL. Luego, solo debes presionar 'Instalar' y la biblioteca IronXL se añadirá a tu proyecto.

- Developer Command Prompt - Abre el Developer Command Prompt desde el menú Herramientas de Visual Studio o desde la carpeta de Visual Studio. Escribe el siguiente comando para descargar e instalar IronXL en tu proyecto:
PM > Install-Package IronXL.Excel
- Directamente desde NuGet Package Manager - Navega a esta URL https://www.nuget.org/packages/IronXL.Excel/ para descargar IronXL.
-
Agregar Espacios de Nombres Necesarios - Para crear DataTable y usar IronXL, ambos deben ser referenciados en la parte superior del archivo Program.cs.
using IronXL; // Add reference to the IronXL library using System.Data; // Add reference to System.Data for DataTableImports IronXL ' Add reference to the IronXL library Imports System.Data ' Add reference to System.Data for DataTable
Una vez cumplidos todos los requisitos previos, es hora de exportar datos de DataTable a hoja de Excel.
Create a DataTable in C#
El siguiente código crea una nueva tabla de datos con dos encabezados de columna y múltiples filas:
// Create a new DataTable object
DataTable dt = new DataTable();
// Add column names to the DataTable
dt.Columns.Add("Animal");
dt.Columns.Add("Sound");
// Add rows representing different animals and their sounds
dt.Rows.Add("Lion", "Roars");
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");' Create a new DataTable object
Dim dt As New DataTable()
' Add column names to the DataTable
dt.Columns.Add("Animal")
dt.Columns.Add("Sound")
' Add rows representing different animals and their sounds
dt.Rows.Add("Lion", "Roars")
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")Primero, creamos un nuevo DataTable llamado "dt". Luego, usando Columns.Add, podemos agregar un número específico de columnas a la tabla de datos por nombre; en nuestro ejemplo, tenemos dos columnas llamadas "Animal" y "Sonido". Luego usamos Rows.Add para agregar nuevas filas, colocando el contenido para cada fila dentro de los paréntesis. El contenido está separado por comas, separando cada cadena por columna.
Create Excel File using IronXL in C#
Al crear tipos de archivos Excel desde cero usando IronXL, es un proceso de dos pasos y muy fácil de implementar en C#. IronXL primero crea un libro de trabajo de Excel y luego ayuda a agregarle una hoja de trabajo. El siguiente código de muestra demuestra cómo crear un libro de trabajo junto con la hoja de trabajo:
// Create a new workbook in XLSX format
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
// Reference to the default worksheet in the workbook
WorkSheet ws = wb.DefaultWorkSheet;' Create a new workbook in XLSX format
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
' Reference to the default worksheet in the workbook
Dim ws As WorkSheet = wb.DefaultWorkSheetExportación de datos de DataTable a una hoja de cálculo de Excel con IronXL
Utilizar IronXL para agregar valores a una hoja de trabajo simplifica todo el proceso, siendo capaz de realizar esta tarea con un mínimo de código. Aquí aprenderemos a exportar datos desde el DataTable creado en la sección anterior a la nueva hoja de trabajo de Excel. Echemos un vistazo al código paso a paso.
Agregar encabezado de columna a la hoja de cálculo de Excel
// Assign DataTable column names to the first row of the Excel worksheet
ws["A1"].Value = dt.Columns[0].ToString();
ws["B1"].Value = dt.Columns[1].ToString();
// Start adding data from the second row
int rowCount = 2;' Assign DataTable column names to the first row of the Excel worksheet
ws("A1").Value = dt.Columns(0).ToString()
ws("B1").Value = dt.Columns(1).ToString()
' Start adding data from the second row
Dim rowCount As Integer = 2En el código anterior, la columna de la hoja de Excel "A1" se asigna al valor de la columna 1 del DataTable en el índice 0 y el siguiente valor de la columna de Excel "B1" se asigna desde la columna 2 en el índice 1 del DataTable. La variable rowCount se establece en un valor de 2 para leer filas desde el DataTable 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 del DataTable y la asignará a una nueva fila en el archivo de Excel:
// Iterate through each row in the DataTable and add to Excel worksheet
foreach (DataRow row in dt.Rows)
{
ws["A" + (rowCount)].Value = row[0].ToString();
ws["B" + (rowCount)].Value = row[1].ToString();
rowCount++;
}' Iterate through each row in the DataTable and add to Excel worksheet
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 rowLa variable rowCount se incrementa cada vez para que se lea una nueva fila desde el DataTable a las celdas de la hoja de trabajo de Excel en el código anterior.
Guardar archivo de Excel
Finalmente, guarda el archivo Excel usando el método SaveAs().
// Save the workbook to a file
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx");' Save the workbook to a file
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx")El archivo se puede guardar en otros formatos también, por ejemplo, CSV (Valores Separados por Comas), JSON, XML.
// Save the workbook in different file formats
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv");
wb.SaveAsJson("DataTable_to_Excel_IronXL.json");
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml");' Save the workbook in different file formats
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv")
wb.SaveAsJson("DataTable_to_Excel_IronXL.json")
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml")También puedes guardarlo con un delimitador personalizado.
Resultado
La salida final del archivo se ve así:

Resumen
En este artículo, demostramos cómo crear un DataTable con columnas y filas en C#, seguido de generar un libro de trabajo de Excel con una hoja de trabajo predeterminada usando IronXL. Luego, exportamos con éxito los datos tabulares del DataTable a un archivo de Excel y lo guardamos en formato .xlsx.
IronXL es una biblioteca 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 una mayor manipulación y cálculo.
Para saber más sobre IronXL y su robusto conjunto de características, asegúrate de consultar su extensa documentación. ¿Quieres probarlo por ti mismo? IronXL también ofrece una prueba gratuita con acceso completo a todas las funciones, ¡para que puedas empezar a explorar cómo esta poderosa biblioteca puede mejorar tus proyectos de hojas de cálculo de inmediato!

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 estructurados y visualmente atractivos.
Artículos Relacionados



