Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
La capacidad de trabajar con archivos Excel para generar informes y crear bases de datos se ha convertido en algo esencial para las aplicaciones informáticas actuales. Actualmente existen muchas bibliotecas que permiten a los usuarios hacer esto sin Microsoft Excel.
En este artículo, vamos a discutir y comparar cómo trabajar con documentos de Microsoft Excel mediante programación en tecnologías C# .NET utilizando dos de las librerías más populares, IronXL y Aspose Cells.
Tanto IronXL como Aspose Cells proporcionan los métodos para crear, editar y leer documentos de Excel en el marco .NET. La siguiente cuestión es decidir qué Biblioteca Excel en C es el más adecuado para su proyecto. Este artículo le ayudará a decidir cuál es la mejor opción para sus aplicaciones.
Veamos en primer lugar lo que ofrecen ambas bibliotecas, y luego pasemos a la comparación propiamente dicha.
IronXL es una biblioteca .NET que facilita la lectura y edición de documentos de Microsoft Excel con C#. IronXL.Excel es una biblioteca de software .NET independiente para leer una amplia gama de formatos de hojas de cálculo. No requiere la instalación de Microsoft Excel ni depende de Interop.
IronXL es una intuitiva API de C# que permite leer, editar y crear archivos de hojas de cálculo Excel en .NET con un rendimiento rapidísimo. IronXL es totalmente compatible con .NET Core, .NET Framework, Xamarin, Mobile, Linux, macOS y Azure.
IronXL es una biblioteca de hojas de cálculo Excel para C# líder en .NET core y .NET framework.
Aspose.Cells para .NET es una API de programación de hojas de cálculo Excel que agiliza las tareas de gestión y procesamiento de hojas de cálculo. La API permite crear aplicaciones multiplataforma capaces de generar, modificar, convertir, renderizar e imprimir hojas de cálculo. Además, no depende de Microsoft Excel ni de ningún componente de Microsoft Office Interop para instalarse, sino que ofrece un sólido conjunto de API que se ocupan de todos los formatos de Excel, así como de los formatos CSV y SpreadsheetML.
Al integrar la API, los desarrolladores pueden realizar tareas básicas como gestionar varias hojas de cálculo, crear contenidos y estilos de hojas de cálculo desde cero, importar datos a hojas de cálculo desde distintas fuentes de datos, añadir fórmulas matemáticas, financieras y de texto comunes y complejas, manipular gráficos, imágenes, comentarios, dibujar objetos y mucho más.
Estas son algunas de las características más destacadas de Aspose Cells:
Representación
Impresión
Procesamiento de datos
Marcadores inteligentes
Suite Grid
Importar/exportar datos
El resto del artículo continúa como sigue:
Siga los siguientes pasos para crear una Aplicación de Consola:
Seleccione Console App (.NET Framework) de las plantillas de proyecto mostradas.
En la pantalla Información adicional, especifique la versión de Framework que desea utilizar. En este ejemplo utilizaremos .NET Framework 4.8.
Haga clic en Crear para completar el proceso.
Ahora el proyecto está creado y estamos casi listos para probar las bibliotecas. Sin embargo, aún tenemos que instalarlos e integrarlos en nuestro proyecto. Primero instalemos IronXL.
Puede descargar e instalar la biblioteca IronXL mediante los siguientes métodos:
Instalar manualmente con la DLL.
Analicemos cada uno de ellos.
Visual Studio proporciona el gestor de paquetes NuGet para instalar paquetes NuGet en sus proyectos. Puede acceder a él a través del menú Proyecto o haciendo clic con el botón derecho del ratón en el Explorador de soluciones.
A continuación, desde la pestaña Examinar -> busca IronXL.Excel -> Instalar
Para ello, visite directamente el sitio de NuGet y descargue el paquete. Los pasos son:
Otra forma de descargar e instalar la Biblioteca IronXL C# es hacer uso de los siguientes pasos para instalar el paquete IronXL NuGet a través del Símbolo del sistema del desarrollador.
Abra el Instructor de comandos para desarrolladores, que suele encontrarse en la carpeta de Visual Studio.
Escribe el siguiente comando:
PM > Install-Package IronXL.Excel
using IronXL;
using IronXL;
Imports IronXL
Todo hecho! IronXL está descargado, instalado y listo para usar. Sin embargo, antes debemos instalar Microsoft.Office.Interop.Excel.
Después de crear el proyecto, acceda a NuGet Package Manager a través del menú Proyecto, o haciendo clic con el botón derecho en su proyecto en el Explorador de soluciones.
Otra forma de descargar e instalar Aspose Cells C# Library es seguir los siguientes pasos para instalar el paquete NuGet a través del símbolo del sistema del desarrollador.
Abra el Instructor de comandos para desarrolladores, que suele encontrarse en la carpeta de Visual Studio.
Escribe el siguiente comando:
PM> Install-Package Aspose.Cells
Puede descargar cualquier versión de Aspose Cells directamente desde el sitio web haciendo clic en este enlace: https://downloads.aspose.com/cells/net
O:
descargar desde el sitio web de NuGet: https://www.nuget.org/packages/Aspose.Cells/
using Aspose.Cells;
using Aspose.Cells;
Imports Aspose.Cells
Un libro de trabajo es un archivo Excel que contiene varias hojas de trabajo con filas y columnas. Ambas bibliotecas permiten crear un nuevo libro y hojas de Excel. Veamos el código paso a paso.
No podría ser más fácil crear un nuevo Libro de Excel usando IronXL! Es sólo una línea de código! Sí, de verdad. Añada el siguiente código a su función static void main en el archivo Program.cs:
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Ambos XLS (versión anterior del archivo Excel) y XLSX (versión actual y más reciente del archivo) formatos de archivo pueden crearse con IronXL.
Además, es aún más sencillo crear una Hoja de cálculo por defecto:
var worksheet = workbook.CreateWorkSheet("IronXL Features");
var worksheet = workbook.CreateWorkSheet("IronXL Features");
Dim worksheet = workbook.CreateWorkSheet("IronXL Features")
Ahora puede utilizar la variable de hoja de cálculo para establecer valores de celda y hacer casi todo lo que puede hacer un archivo de Excel.
Guardar archivos Excel:
//Guardar hoja de cálculo
workbook.SaveAs("NewExcelFile.xlsx");
//Guardar hoja de cálculo
workbook.SaveAs("NewExcelFile.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
Antes de crear una hoja de cálculo y su contenido, debe crearse un objeto de licencia para evitar las limitaciones de evaluación si se ha adquirido una versión con licencia. El código es el siguiente:
// Crear un objeto Licencia
License license = new License();
// Configure la licencia de Aspose.Cells para evitar las limitaciones de evaluación
license.SetLicense(dataDir + "Aspose.Cells.lic");
// Crear un objeto Licencia
License license = new License();
// Configure la licencia de Aspose.Cells para evitar las limitaciones de evaluación
license.SetLicense(dataDir + "Aspose.Cells.lic");
' Crear un objeto Licencia
Dim license As New License()
' Configure la licencia de Aspose.Cells para evitar las limitaciones de evaluación
license.SetLicense(dataDir & "Aspose.Cells.lic")
A continuación, vamos a ver el código para crear un libro de trabajo y una hoja de cálculo. El ejemplo de código es el siguiente:
// Instanciar un objeto Workbook que representa un archivo Excel.
Workbook wb = new Workbook();
// Cuando se crea un nuevo libro de trabajo, se añade por defecto una "Hoja1" al libro.
Worksheet sheet = wb.Worksheets [0];
// Instanciar un objeto Workbook que representa un archivo Excel.
Workbook wb = new Workbook();
// Cuando se crea un nuevo libro de trabajo, se añade por defecto una "Hoja1" al libro.
Worksheet sheet = wb.Worksheets [0];
' Instanciar un objeto Workbook que representa un archivo Excel.
Dim wb As New Workbook()
' Cuando se crea un nuevo libro de trabajo, se añade por defecto una "Hoja1" al libro.
Dim sheet As Worksheet = wb.Worksheets (0)
Guardar archivos Excel:
//Guardar hoja de cálculo
wb.Save("NewExcelFile.xlsx");
//Guardar hoja de cálculo
wb.Save("NewExcelFile.xlsx");
'Guardar hoja de cálculo
wb.Save("NewExcelFile.xlsx")
Ambas bibliotecas pueden abrir y leer documentos Excel existentes. Veamos el código de ejemplo.
La clase IronXL WorkBook representa una hoja de Excel. Para abrir un archivo Excel utilizando C#, utilizamos WorkBook.Load y especificamos la ruta del archivo Excel (.xlsx). El siguiente código de una línea se utiliza para abrir el archivo para su lectura:
//Cargar WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
//Cargar WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
'Cargar WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
Cada WorkBook puede tener varios objetos WorkSheet. Representan hojas de trabajo en el documento Excel. Si el libro contiene hojas de cálculo, recupérelas por nombre de la siguiente manera:
//Hoja abierta a la lectura
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
//Hoja abierta a la lectura
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
'Hoja abierta a la lectura
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
Código para leer los valores de las celdas:
// Lee desde Rangos de células con elegancia.
foreach (var cell in worksheet ["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Lee desde Rangos de células con elegancia.
foreach (var cell in worksheet ["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Lee desde Rangos de células con elegancia.
For Each cell In worksheet ("A2:A10")
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
La lectura de archivos Excel en celdas Aspose también es una tarea sencilla, ya que puede gestionar varias hojas de cálculo con facilidad. Echa un vistazo al siguiente código:
// Creación de un objeto Workbook y apertura de un archivo Excel utilizando su ruta de archivo
var workbook = new Workbook(@"Spreadsheets\\sample.xlsx");
//Añadir una nueva hoja
Worksheet sheet = workbook1.Worksheets.Add("MySheet");
// Creación de un objeto Workbook y apertura de un archivo Excel utilizando su ruta de archivo
var workbook = new Workbook(@"Spreadsheets\\sample.xlsx");
//Añadir una nueva hoja
Worksheet sheet = workbook1.Worksheets.Add("MySheet");
' Creación de un objeto Workbook y apertura de un archivo Excel utilizando su ruta de archivo
Dim workbook As New Workbook("Spreadsheets\\sample.xlsx")
'Añadir una nueva hoja
Dim sheet As Worksheet = workbook1.Worksheets.Add("MySheet")
El código para leer los valores de las celdas:
//Obtener células
Cells cells = sheet.Cells;
foreach (var cell in cells)
{
Console.WriteLine(cell.Value);
}
//Obtener células
Cells cells = sheet.Cells;
foreach (var cell in cells)
{
Console.WriteLine(cell.Value);
}
'Obtener células
Dim cells As Cells = sheet.Cells
For Each cell In cells
Console.WriteLine(cell.Value)
Next cell
Las fórmulas de Excel son una de las características más importantes del trabajo con archivos Excel. Ambas bibliotecas disponen de un potente motor de cálculo de fórmulas que permite trabajar con fórmulas y aplicarlas fácilmente a las celdas.
Después de cargar el libro de trabajo y la hoja de cálculo, el siguiente ejemplo de código puede utilizarse para realizar cambios en las fórmulas o aplicarse a celdas específicas. El código es el siguiente:
// Establecer fórmulas
worksheet ["A1"].Formula = "Sum(B8:C12)";
worksheet ["B8"].Formula = "=C9/C11";
worksheet ["G30"].Formula = "Max(C3:C7)";
// Forzar el recálculo de todos los valores de las fórmulas en todas las hojas.
workbook.EvaluateAll();
// Establecer fórmulas
worksheet ["A1"].Formula = "Sum(B8:C12)";
worksheet ["B8"].Formula = "=C9/C11";
worksheet ["G30"].Formula = "Max(C3:C7)";
// Forzar el recálculo de todos los valores de las fórmulas en todas las hojas.
workbook.EvaluateAll();
' Establecer fórmulas
worksheet ("A1").Formula = "Sum(B8:C12)"
worksheet ("B8").Formula = "=C9/C11"
worksheet ("G30").Formula = "Max(C3:C7)"
' Forzar el recálculo de todos los valores de las fórmulas en todas las hojas.
workbook.EvaluateAll()
También puede recuperar fórmulas y sus valores:
// Obtener el valor calculado de la fórmula. p.ej. "52"
string formulaValue = worksheet ["G30"].Value;
//Obtener la fórmula como una cadena. Por ejemplo, "Max(C3:C7)"
string formulaString = worksheet ["G30"].Formula;
//Guarde los cambios con las fórmulas y los valores calculados actualizados.
workbook.Save();
// Obtener el valor calculado de la fórmula. p.ej. "52"
string formulaValue = worksheet ["G30"].Value;
//Obtener la fórmula como una cadena. Por ejemplo, "Max(C3:C7)"
string formulaString = worksheet ["G30"].Formula;
//Guarde los cambios con las fórmulas y los valores calculados actualizados.
workbook.Save();
' Obtener el valor calculado de la fórmula. p.ej. "52"
Dim formulaValue As String = worksheet ("G30").Value
'Obtener la fórmula como una cadena. Por ejemplo, "Max(C3:C7)"
Dim formulaString As String = worksheet ("G30").Formula
'Guarde los cambios con las fórmulas y los valores calculados actualizados.
workbook.Save()
Con Aspose.Cells también es fácil trabajar con fórmulas. Añada el siguiente código al archivo Excel que está leyendo. El código es el siguiente:
//Valores de ajuste
Cells cells = sheet.Cells;
//Fórmula de ajuste
cells ["A4"].Formula = "=SUM(A1:A3)";
// Calcular los resultados de las fórmulas
workbook.CalculateFormula();
//Valores de ajuste
Cells cells = sheet.Cells;
//Fórmula de ajuste
cells ["A4"].Formula = "=SUM(A1:A3)";
// Calcular los resultados de las fórmulas
workbook.CalculateFormula();
'Valores de ajuste
Dim cells As Cells = sheet.Cells
'Fórmula de ajuste
cells ("A4").Formula = "=SUM(A1:A3)"
' Calcular los resultados de las fórmulas
workbook.CalculateFormula()
Siguiendo el código anterior puede establecer más fórmulas con facilidad.
Tanto IronXL como Aspose Cells ofrecen la posibilidad de convertir archivos xlsx de Excel a diferentes formatos, y de diferentes formatos a libros de Excel.
El proceso es bastante sencillo y fácil. Suele hacerse con una línea de código.
**Formatos deCSV a Excel
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat:
ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("CsvToExcelConversion.xlsx");
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat:
ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("CsvToExcelConversion.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
workbook.SaveAs("CsvToExcelConversion.xlsx")
De archivo XLSX a XLSM:
WorkBook workbook = WorkBook.Load("test.xlsx");
//Así es como se puede exportar el libro de trabajo a formato .xlsm
workbook.SaveAs("test.xlsm");
WorkBook workbook = WorkBook.Load("test.xlsx");
//Así es como se puede exportar el libro de trabajo a formato .xlsm
workbook.SaveAs("test.xlsm");
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
'Así es como se puede exportar el libro de trabajo a formato .xlsm
workbook.SaveAs("test.xlsm")
**Excel a HTML con opciones
WorkBook workbook = WorkBook.Load("test.xlsx");
var options = new HtmlExportOptions()
{
//Así es como podemos hacer visibles los números de fila/columna en un documento html
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
//Así es como podemos hacer visibles las filas/columnas ocultas en un documento html
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
//Así es como podemos exportar el libro de trabajo al archivo HTML
workbook.ExportToHtml("workbook.html",options);
WorkBook workbook = WorkBook.Load("test.xlsx");
var options = new HtmlExportOptions()
{
//Así es como podemos hacer visibles los números de fila/columna en un documento html
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
//Así es como podemos hacer visibles las filas/columnas ocultas en un documento html
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
//Así es como podemos exportar el libro de trabajo al archivo HTML
workbook.ExportToHtml("workbook.html",options);
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
Dim options = New HtmlExportOptions() With {
.OutputRowNumbers = True,
.OutputColumnHeaders = True,
.OutputHiddenColumns = True,
.OutputHiddenRows = True,
.OutputLeadingSpacesAsNonBreaking = True
}
'Así es como podemos exportar el libro de trabajo al archivo HTML
workbook.ExportToHtml("workbook.html",options)
También es bastante sencillo convertir archivos Excel xlsx en celdas Aspose. Eche un vistazo a los siguientes códigos:
**Excel a HTML
//Cargar el libro de origen
Workbook workbook = new Workbook("Book1.xlsx");
//guardar archivo en formato html
workbook.Save("out.html");
//Cargar el libro de origen
Workbook workbook = new Workbook("Book1.xlsx");
//guardar archivo en formato html
workbook.Save("out.html");
'Cargar el libro de origen
Dim workbook As New Workbook("Book1.xlsx")
'guardar archivo en formato html
workbook.Save("out.html")
ODs de texto a Excel:
//Cargue su archivo de texto ods fuente
Workbook workbook = new Workbook("book1.ods");
//Guardar como archivo xlsx
workbook.Save("ods_out.xlsx");
//Cargue su archivo de texto ods fuente
Workbook workbook = new Workbook("book1.ods");
//Guardar como archivo xlsx
workbook.Save("ods_out.xlsx");
'Cargue su archivo de texto ods fuente
Dim workbook As New Workbook("book1.ods")
'Guardar como archivo xlsx
workbook.Save("ods_out.xlsx")
**Hoja de cálculo Excel a formatos SVG
// Instanciar un libro de trabajo
var workbook = new Workbook();
// Rellenar la primera celda de la hoja de cálculo
workbook.Worksheets [0].Cells ["A1"].Value = "DEMO TEXT ON SHEET1";
// Convertir hojas de cálculo
workbook.Save("ConvertWorksheetToSVG_out.svg");
// Instanciar un libro de trabajo
var workbook = new Workbook();
// Rellenar la primera celda de la hoja de cálculo
workbook.Worksheets [0].Cells ["A1"].Value = "DEMO TEXT ON SHEET1";
// Convertir hojas de cálculo
workbook.Save("ConvertWorksheetToSVG_out.svg");
' Instanciar un libro de trabajo
Dim workbook As New Workbook()
' Rellenar la primera celda de la hoja de cálculo
workbook.Worksheets (0).Cells ("A1").Value = "DEMO TEXT ON SHEET1"
' Convertir hojas de cálculo
workbook.Save("ConvertWorksheetToSVG_out.svg")
IronXL es una librería de C# Excel abiertamente comercial. Es gratuito para el desarrollo y siempre se puede obtener una licencia para su implantación comercial. Licencias disponibles para uso en un solo proyecto, desarrolladores individuales, agencias y corporaciones globales, así como SaaS y redistribución OEM. Todas las licencias incluyen una garantía de devolución del dinero de 30 días, un año de asistencia técnica y actualizaciones del producto, validez para desarrollo/montaje/producción y también una licencia permanente. (compra única). El paquete Lite parte de $599.
Aspose Cells es una API de código abierto y puede adquirirse bajo licencia para uso comercial. La versión de evaluación del producto Aspose.Cells ofrece todas las funciones del producto, pero está limitada a la apertura de 100 archivos en un programa y tiene una hoja de cálculo adicional con la marca de agua de evaluación. La asistencia técnica es gratuita e ilimitada y se ofrece tanto a los usuarios con licencia como a los de evaluación. Si desea probar Aspose.Cells sin las limitaciones de la versión de evaluación, solicite una licencia temporal de 30 días o adquiera una versión con licencia desde aquí enlace. El paquete para desarrolladores de pequeñas empresas cuesta a partir de 1199 $.
En comparación, IronXL y Aspose.Cells van de la mano cuando se trabaja con Excel. IronXL y Aspose.Cells proporcionan funciones avanzadas de Excel junto con operaciones básicas de Excel. IronXL es gratuito para el desarrollo, mientras que Aspose.Cells tiene un periodo de evaluación con un límite de 100 archivos por aplicación. En este caso, la ventaja la tiene IronXL para uso no comercial. Además, IronXL también proporciona conversión desde y hacia el formato JSON.
9 productos API .NET para sus documentos de oficina