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 .NET Framework. 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:
Crear una aplicación de consola
Instalación de la librería IronXL C#
Instalación de Aspose Cells
Crear y guardar un nuevo libro y hoja de Excel
Leer archivos Excel
Trabajar con fórmulas de Excel
Inter Convertir archivos
Licencias
Siga los siguientes pasos para crear una Aplicación de Consola:
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:
Uso de Visual Studio con paquetes NuGet.
Descargue directamente el paquete NuGet.
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
En el Explorador de soluciones, haga clic con el botón derecho en el archivo Program.cs y, a continuación, haga clic en Ver código.
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/
En el Explorador de soluciones, haga clic con el botón derecho en el archivo Program.cs y, a continuación, haga clic en Ver código.
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:
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
'Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx")
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:
// Create a License object
License license = new License();
// Set the license of Aspose.Cells to avoid the evaluation limitations
license.SetLicense(dataDir + "Aspose.Cells.lic");
// Create a License object
License license = new License();
// Set the license of Aspose.Cells to avoid the evaluation limitations
license.SetLicense(dataDir + "Aspose.Cells.lic");
' Create a License object
Dim license As New License()
' Set the license of Aspose.Cells to avoid the evaluation limitations
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:
// Instantiate a Workbook object that represents Excel file.
Workbook wb = new Workbook();
// When you create a new workbook, a default "Sheet1" is added to the workbook.
Worksheet sheet = wb.Worksheets [0];
// Instantiate a Workbook object that represents Excel file.
Workbook wb = new Workbook();
// When you create a new workbook, a default "Sheet1" is added to the workbook.
Worksheet sheet = wb.Worksheets [0];
' Instantiate a Workbook object that represents Excel file.
Dim wb As New Workbook()
' When you create a new workbook, a default "Sheet1" is added to the workbook.
Dim sheet As Worksheet = wb.Worksheets (0)
Guardar archivos Excel:
//Save spreadsheet
wb.Save("NewExcelFile.xlsx");
//Save spreadsheet
wb.Save("NewExcelFile.xlsx");
'Save spreadsheet
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:
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
'Load 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:
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
'Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
Código para leer los valores de las celdas:
// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read from Ranges of cells elegantly.
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:
// Creating a Workbook object and opening an Excel file using its file path
var workbook = new Workbook(@"Spreadsheets\\sample.xlsx");
//Adding new sheet
Worksheet sheet = workbook1.Worksheets.Add("MySheet");
// Creating a Workbook object and opening an Excel file using its file path
var workbook = new Workbook(@"Spreadsheets\\sample.xlsx");
//Adding new sheet
Worksheet sheet = workbook1.Worksheets.Add("MySheet");
' Creating a Workbook object and opening an Excel file using its file path
Dim workbook As New Workbook("Spreadsheets\\sample.xlsx")
'Adding new sheet
Dim sheet As Worksheet = workbook1.Worksheets.Add("MySheet")
El código para leer los valores de las celdas:
//Get Cells
Cells cells = sheet.Cells;
foreach (var cell in cells)
{
Console.WriteLine(cell.Value);
}
//Get Cells
Cells cells = sheet.Cells;
foreach (var cell in cells)
{
Console.WriteLine(cell.Value);
}
'Get Cells
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:
// Set Formulas
worksheet ["A1"].Formula = "Sum(B8:C12)";
worksheet ["B8"].Formula = "=C9/C11";
worksheet ["G30"].Formula = "Max(C3:C7)";
// Force recalculate all formula values in all sheets.
workbook.EvaluateAll();
// Set Formulas
worksheet ["A1"].Formula = "Sum(B8:C12)";
worksheet ["B8"].Formula = "=C9/C11";
worksheet ["G30"].Formula = "Max(C3:C7)";
// Force recalculate all formula values in all sheets.
workbook.EvaluateAll();
' Set Formulas
worksheet ("A1").Formula = "Sum(B8:C12)"
worksheet ("B8").Formula = "=C9/C11"
worksheet ("G30").Formula = "Max(C3:C7)"
' Force recalculate all formula values in all sheets.
workbook.EvaluateAll()
También puede recuperar fórmulas y sus valores:
// Get the formula's calculated value. e.g. "52"
string formulaValue = worksheet ["G30"].Value;
//Get the formula as a string. e.g. "Max(C3:C7)"
string formulaString = worksheet ["G30"].Formula;
//Save your changes with updated formulas and calculated values.
workbook.Save();
// Get the formula's calculated value. e.g. "52"
string formulaValue = worksheet ["G30"].Value;
//Get the formula as a string. e.g. "Max(C3:C7)"
string formulaString = worksheet ["G30"].Formula;
//Save your changes with updated formulas and calculated values.
workbook.Save();
' Get the formula's calculated value. e.g. "52"
Dim formulaValue As String = worksheet ("G30").Value
'Get the formula as a string. e.g. "Max(C3:C7)"
Dim formulaString As String = worksheet ("G30").Formula
'Save your changes with updated formulas and calculated values.
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:
//Setting values
Cells cells = sheet.Cells;
//Setting formula
cells ["A4"].Formula = "=SUM(A1:A3)";
// Calculating the results of formulas
workbook.CalculateFormula();
//Setting values
Cells cells = sheet.Cells;
//Setting formula
cells ["A4"].Formula = "=SUM(A1:A3)";
// Calculating the results of formulas
workbook.CalculateFormula();
'Setting values
Dim cells As Cells = sheet.Cells
'Setting formula
cells ("A4").Formula = "=SUM(A1:A3)"
' Calculating the results of formulas
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");
//This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm");
WorkBook workbook = WorkBook.Load("test.xlsx");
//This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm");
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
'This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm")
**Excel a HTML con opciones
WorkBook workbook = WorkBook.Load("test.xlsx");
var options = new HtmlExportOptions()
{
//This is how we can make row/column numbers visible in html document
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
//This is how we can make hidden rows/columns visible in html document
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
//This is how we can export workbook to the HTML file
workbook.ExportToHtml("workbook.html",options);
WorkBook workbook = WorkBook.Load("test.xlsx");
var options = new HtmlExportOptions()
{
//This is how we can make row/column numbers visible in html document
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
//This is how we can make hidden rows/columns visible in html document
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
//This is how we can export workbook to the HTML file
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
}
'This is how we can export workbook to the HTML file
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
//Load your source workbook
Workbook workbook = new Workbook("Book1.xlsx");
//save file to html format
workbook.Save("out.html");
//Load your source workbook
Workbook workbook = new Workbook("Book1.xlsx");
//save file to html format
workbook.Save("out.html");
'Load your source workbook
Dim workbook As New Workbook("Book1.xlsx")
'save file to html format
workbook.Save("out.html")
ODs de texto a Excel:
//Load your source ods text file
Workbook workbook = new Workbook("book1.ods");
//Save as xlsx file
workbook.Save("ods_out.xlsx");
//Load your source ods text file
Workbook workbook = new Workbook("book1.ods");
//Save as xlsx file
workbook.Save("ods_out.xlsx");
'Load your source ods text file
Dim workbook As New Workbook("book1.ods")
'Save as xlsx file
workbook.Save("ods_out.xlsx")
**Hoja de cálculo Excel a formatos SVG
// Instantiate a workbook
var workbook = new Workbook();
// Populate worksheets first cell
workbook.Worksheets [0].Cells ["A1"].Value = "DEMO TEXT ON SHEET1";
// Convert Worksheets
workbook.Save("ConvertWorksheetToSVG_out.svg");
// Instantiate a workbook
var workbook = new Workbook();
// Populate worksheets first cell
workbook.Worksheets [0].Cells ["A1"].Value = "DEMO TEXT ON SHEET1";
// Convert Worksheets
workbook.Save("ConvertWorksheetToSVG_out.svg");
' Instantiate a workbook
Dim workbook As New Workbook()
' Populate worksheets first cell
workbook.Worksheets (0).Cells ("A1").Value = "DEMO TEXT ON SHEET1"
' Convert Worksheets
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 $749.
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