Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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.
IronXLes 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.
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.
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 desdeSitio 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.
Ahora, elige tu tipo de proyecto. En nuestro ejemplo, crearemos una aplicación de consola.
Nombra tu proyecto y elige la ubicación donde se guardará.
Finalmente, elija su .NET Framework y haga clic en "Crear".
Después de hacer clic en Crear en la última captura de pantalla, se crea el proyecto con el nombre "DemoApp".
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.
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.
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
using IronXL; //add reference...
using System.Data;
using IronXL; //add reference...
using System.Data;
Imports IronXL 'add reference...
Imports System.Data
Una vez que se cumplan todos los requisitos previos, es hora de exportar los datos del datatable a la hoja de Excel.
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")
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.
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
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.
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
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.
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
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.
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")
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")
También puedes guardarlo con un delimitador personalizado.
El resultado final del archivo es el siguiente:
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.
IronXLes 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 gratuitacon 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!
9 productos API .NET para sus documentos de oficina