Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
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:
DataRow
de DataTable
en C#Value
en Cell
y poblar la hoja de cálculo con datos de DataRow
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.
Crear una nueva interfaz de proyecto en Visual Studio
A continuación, introduzca el nombre y la ubicación del 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.
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.
Archivo program.cs vacío en el nuevo proyecto
A continuación, podemos añadir la biblioteca para probar el código.
La biblioteca IronXL puede descargarse e instalarse de cuatro formas.
Estos son:
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.
Navegar al Administrador de Paquetes NuGet en Visual Studio
IronXL en los resultados de búsqueda:
Buscar la biblioteca de IronXL
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.
Install-Package IronXL.Excel
Ahora el paquete se descargará/instalará en el proyecto actual y estará listo para su uso.
Instalar el paquete IronXL a través de la Consola
La tercera forma es descargar el paquete NuGet directamente del sitio web.
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.
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.
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
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.
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:
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.
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.