Saltar al pie de página
USANDO IRONXL

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 para .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.

  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 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.

Crear un proyecto

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

Aplicación de Consola

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

Nombrar proyecto

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

Framework .NET

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

  1. 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.

Explorador de Soluciones

Herramientas - Administrador de Paquetes NuGet

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. 

Buscar IronXL

* **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:

 ```shell
 PM > Install-Package IronXL.Excel
 ```
  1. 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 DataTable
    using IronXL; // Add reference to the IronXL library
    using System.Data; // Add reference to System.Data for DataTable
    Imports IronXL ' Add reference to the IronXL library
    Imports System.Data ' Add reference to System.Data for DataTable
    $vbLabelText   $csharpLabel

Una vez cumplidos todos los requisitos previos, es hora de exportar datos de DataTable a 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:

// 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
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")
$vbLabelText   $csharpLabel

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.

Crear un archivo de Excel usando IronXL en 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
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.DefaultWorkSheet
$vbLabelText   $csharpLabel

Exportació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
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 = 2
$vbLabelText   $csharpLabel

En 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
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 row
$vbLabelText   $csharpLabel

La 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");
' Save the workbook to a file
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx")
$vbLabelText   $csharpLabel

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");
' 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")
$vbLabelText   $csharpLabel

También puedes guardarlo con un delimitador personalizado.

Resultado

La salida final del archivo se ve así:

Salida de DataTable a Excel

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!

Preguntas Frecuentes

¿Cómo puedo exportar un DataTable a Excel rápidamente usando C#?

Puede usar la biblioteca IronXL .NET Excel para exportar un DataTable a Excel de manera eficiente. Esta biblioteca le permite crear y manipular archivos de Excel sin necesidad de Microsoft Office Interop.

¿Qué herramientas son necesarias para exportar un DataTable a Excel en C#?

Para exportar un DataTable a Excel usando IronXL, necesita tener Visual Studio instalado y la biblioteca IronXL agregada a su proyecto a través del NuGet Package Manager.

¿Cómo creo un DataTable en una aplicación C#?

En C#, se crea un DataTable instanciando un nuevo objeto DataTable. Luego puede agregar columnas utilizando Columns.Add y llenarlo con filas utilizando Rows.Add.

¿Cuál es el método para exportar los datos de un DataTable a un archivo de Excel?

Para exportar datos de un DataTable a un archivo de Excel, itere a través de cada fila de DataTable y asigne los valores a las celdas de Excel correspondientes usando funcionalidades de IronXL.

¿Puedo guardar un archivo de Excel en diferentes formatos usando una biblioteca .NET?

Sí, con IronXL, puede guardar archivos de Excel en varios formatos, incluyendo XLSX, CSV, JSON y XML, e incluso especificar delimitadores personalizados.

¿Necesito Microsoft Office para gestionar archivos de Excel con una biblioteca C#?

No, no necesita tener Microsoft Office instalado. IronXL le permite gestionar archivos de Excel programáticamente sin depender de Microsoft Office Interop.

¿Cuáles son las ventajas de usar una biblioteca .NET Excel?

IronXL ofrece numerosos beneficios como crear y editar archivos de Excel, aplicar fórmulas, estilizar celdas y exportar datos en múltiples formatos. También soporta características de seguridad como protección con contraseña.

¿Qué pasos están involucrados en guardar un libro de Excel programáticamente?

Para guardar un libro de Excel usando IronXL, use el método SaveAs, seleccionando el formato de archivo deseado como XLSX, CSV o JSON.

¿Hay una prueba gratuita disponible para una biblioteca .NET Excel?

Sí, IronXL ofrece una prueba gratuita que le da acceso completo a sus características, permitiendo a los desarrolladores probar sus capacidades antes de comprometerse.

¿Dónde puedo encontrar documentación detallada para usar una biblioteca .NET Excel?

Documentación completa para IronXL, incluyendo guías y ejemplos, puede encontrarse en su página web oficial.

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