COMPARACIóN CON OTROS COMPONENTES

Comparación entre IronXL y ClosedXML

Publicado en 24 de octubre, 2022
Compartir:

Las aplicaciones informáticas actuales requieren la capacidad de crear bases de datos y generar informes utilizando archivos Excel. Hoy en día existen muchas bibliotecas que permiten a los usuarios hacer esto sin necesidad de 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 ClosedXML para leer, manipular y escribir informes Excel.

Tanto IronXL como ClosedXML proporcionan métodos para crear, editar y leer documentos Excel en el .NET Framework. La siguiente cuestión es decidir qué biblioteca de C# Excel es la más adecuada para su proyecto. Este artículo le ayudará a decidir cuál es la mejor opción para sus aplicaciones.

Veamos primero lo que ofrecen ambas bibliotecas y luego pasemos a la comparación propiamente dicha.



Biblioteca IronXL

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 que Microsoft Excel esté instalado, 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 líder de hojas de cálculo de .NET Core y .NET Framework Excel para C#.

Características de IronXL

  • Cargar, leer y editar datos --- desde XLS/XLSX/CSV/TSV
  • Guardar y exportar --- a XLS/XLSX/CSV/TSV/JSON
  • Sistema.Datos Objetos --- trabajar con hojas de cálculo Excel como Sistema.Datos.DataSet y Sistema.Datos.DataTable objetos.
  • Fórmulas --- trabaja con fórmulas de Excel. Las fórmulas se recalculan cada vez que se edita una hoja.
  • Rangos --- hoja de trabajo fácil de usar ["A1:B10"] sintaxis. Combine y cree gamas de forma intuitiva.
  • Ordenar --- ordenar rangos, columnas y filas.
  • Estilización --- estilos visuales de celda, fuente, tamaño, patrón de fondo, borde, alineación y formatos numéricos.

    Más características de IronXL pueden ser exploradas usando esto enlace.

ClosedXML

ClosedXML es una biblioteca .NET para leer, manipular y escribir Excel 2007+. (.xlsx, .xlsm) archivos. Su objetivo es proporcionar una interfaz intuitiva y fácil de usar para tratar con la biblioteca OpenXML subyacente. El .xlsx es una extensión de archivo para un formato de hoja de cálculo API subyacente OpenXML utilizado por Microsoft Excel. Los archivos .xlsm admiten macros. Los .xltm son archivos de plantilla habilitados para macros. El formato .xls es un formato binario propietario, mientras que .xlsx se basa en el formato OpenXML de Office.

ClosedXML es una librería .NET para la generación de informes en Microsoft Excel sin necesidad de que Excel esté instalado en la máquina que ejecuta el código.

Características de ClosedXML

ClosedXML tiene una interfaz fácil de usar con amplias funciones API para manejar la creación y extracción de contenido en Excel. Con estas llamadas a la API y la solicitud de extracción, puede modificar cada pequeño detalle en la hoja de Excel o workbook.\

A continuación se enumeran todas las características:

  1. Fórmulas

  2. Validación

  3. Hiper-enlaces

  4. Protección (Nivel de hoja y celda)

  5. **Formato condicional

  6. Paneles de congelación

  7. Tablas

  8. Gamas

  9. Estilismo

  10. Configurar página (Impresión)

  11. **Filtros automáticos

  12. Comentarios

    El resto del artículo continúa como sigue:

  13. Crear una aplicación de consola

  14. Instalación de la librería IronXL C#

  15. Instalación de ClosedXML

  16. Crear y guardar un nuevo libro y hoja de Excel

  17. Leer archivo Excel

  18. Trabajar con fórmulas de Excel

  19. Licencias

  20. Resumen y conclusión

1. Crear una aplicación de consola

Siga los siguientes pasos para crear una Aplicación de Consola:

  • Inicie el IDE de Visual Studio 2022.
  • Haga clic en "Crear un nuevo proyecto.".
  • En la página "Crear un nuevo proyecto", seleccione C# en la lista desplegable de lenguajes, Windows en la lista de Plataformas y Consola en la lista de "Tipos de proyecto".
  • Seleccione Console App (.NET Framework) de las plantillas de proyecto mostradas.
    Crear un proyecto

    Crear un proyecto

  • Pulse Siguiente.
  • Nombre el proyecto "DemoApp" y haga clic en Siguiente.

    Proyecto DemoApp

    Proyecto DemoApp

  • En la pantalla Información adicional, especifique la versión de Framework que desea utilizar. En este ejemplo utilizaremos .NET Framework 6.0.

    .NET Framework 6.0

    .NET Framework 6.0

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

2. Instalación de la librería IronXL C

Puede descargar e instalar el Biblioteca IronXL utilizando los siguientes métodos:

  1. Uso de Visual Studio con paquetes NuGet.

  2. Instalación manual de la DLL.

    Analicemos cada uno de ellos.

2.1. Uso de Visual Studio con paquetes NuGet

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.

Gestor de paquetes

Gestor de paquetes

  • A continuación, desde la pestaña Examinar > busque IronXL.Excel > Instalar

    Instalación de IronXL en NuGet

    Instalación de IronXL en NuGet

  • Y hemos terminado.

2.2. Instalación manual de la DLL

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:

Install-Package IronXL.Excel
  • Pulsa Intro.
  • Esto descargará e instalará el paquete.
  • Vuelva a cargar el proyecto de Visual Studio y comience a utilizarlo.

2.4. Añadir las directivas de uso necesarias

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

  2. Añada las siguientes directivas de uso al principio del archivo de código:
using IronXL;
using IronXL;
Imports IronXL
VB   C#

Todo hecho! IronXL está descargado, instalado y listo para usar. Sin embargo, antes debemos instalar ClosedXML.

3. Instalación de ClosedXML

Para instalar el paquete ClosedXML, puede descargarlo directamente desde NuGet o desde NuGet Package Manager/Console en el proyecto.

Para instalar directamente ClosedXML, haga clic en este enlace enlace.

3.1. Uso de la consola/gestor de paquetes NuGet

Abra el gestor de paquetes NuGet desde el explorador de soluciones del proyecto, busque ClosedXML y haga clic en instalar.

Instalación NuGet de ClosedXML

Instalación NuGet de ClosedXML

O:

  • Abra el Instructor de comandos para desarrolladores --- que suele encontrarse en la carpeta de Visual Studio.

    Escribe el siguiente comando:

PM> Install-Package ClosedXML
  • Pulsa Intro.
  • Esto descargará e instalará el paquete.
  • Vuelva a cargar el proyecto de Visual Studio y comience a utilizarlo.

3.2. Añadir las directivas de uso necesarias

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

  2. Añada las siguientes directivas de uso al principio del archivo de código:
using ClosedXML.Excel;
using ClosedXML.Excel;
Imports ClosedXML.Excel
VB   C#

4. Crear y guardar un nuevo libro y hojas de Excel

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.

4.1. Nuevo libro de Excel y hojas usando IronXL

No podría ser más fácil crear un nuevo Libro de Excel usando IronXL. Sólo se necesita 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)
VB   C#

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")
VB   C#

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.

//Add data and styles to the new worksheet
worksheet ["A1"].Value = "Hello World";
worksheet ["A2"].Style.BottomBorder.SetColor("#ff6600");
worksheet ["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
//Add data and styles to the new worksheet
worksheet ["A1"].Value = "Hello World";
worksheet ["A2"].Style.BottomBorder.SetColor("#ff6600");
worksheet ["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
'Add data and styles to the new worksheet
worksheet ("A1").Value = "Hello World"
worksheet ("A2").Style.BottomBorder.SetColor("#ff6600")
worksheet ("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Double
VB   C#

Guardar archivo Excel:

//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
'Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx")
VB   C#

El archivo de salida tiene el siguiente aspecto:

NuevoArchivoExcel Salida

NuevoArchivoExcel salida

4.2. Nuevo libro y hojas de Excel utilizando ClosedXML

También puedes crear archivos Excel(.xlsx, .xlsm) fácilmente utilizando ClosedXML. El siguiente código es un ejemplo típico que sirve para generar un simple fichero Excel y guardarlo. Puede añadir una nueva hoja de muestra a su libro de trabajo y asignar valores a las celdas de su aplicación Excel.

// Create a new empty Excel file.
var workbook = new XLWorkbook();

// Create a new worksheet and set cell A1 value to 'Hello world!'.
var worksheet = workbook.Worksheets.Add("ClosedXML Features");
worksheet.Cell("A1").Value = "Hello world!";

// Save to XLSX file.
workbook.SaveAs("Spreadsheet.xlsx");
// Create a new empty Excel file.
var workbook = new XLWorkbook();

// Create a new worksheet and set cell A1 value to 'Hello world!'.
var worksheet = workbook.Worksheets.Add("ClosedXML Features");
worksheet.Cell("A1").Value = "Hello world!";

// Save to XLSX file.
workbook.SaveAs("Spreadsheet.xlsx");
' Create a new empty Excel file.
Dim workbook = New XLWorkbook()

' Create a new worksheet and set cell A1 value to 'Hello world!'.
Dim worksheet = workbook.Worksheets.Add("ClosedXML Features")
worksheet.Cell("A1").Value = "Hello world!"

' Save to XLSX file.
workbook.SaveAs("Spreadsheet.xlsx")
VB   C#

El archivo de salida tiene el siguiente aspecto:

Salida de archivos de hoja de cálculo

Salida de archivos de hoja de cálculo

5. Leer archivo Excel (Importar archivo Excel)

Ambas bibliotecas pueden abrir y leer documentos Excel existentes. Veamos el código de ejemplo.

5.1. Leer archivos de Excel usando IronXL

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 (.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")
VB   C#

Cada WorkBook puede tener varias hojas de trabajo en el documento Excel. Si el libro contiene varias 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")
VB   C#

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
VB   C#

5.2. Leer archivos Excel usando ClosedXML

ClosedXML permite la lectura de archivos previamente creados desde su aplicación C#. Puede importar un archivo Excel utilizando el siguiente código.

// Import Excel File from file's path.
var workbook = new XLWorkbook("SimpleTemplate.xlsx");

// Read worksheet from workbook using sheet number.
var worksheet1 = workbook.Worksheet(1);

// Read cell value from first sheet
var data = worksheet1.Cell("A1").GetValue<string>();

// Display on screen
Console.WriteLine(data);
// Import Excel File from file's path.
var workbook = new XLWorkbook("SimpleTemplate.xlsx");

// Read worksheet from workbook using sheet number.
var worksheet1 = workbook.Worksheet(1);

// Read cell value from first sheet
var data = worksheet1.Cell("A1").GetValue<string>();

// Display on screen
Console.WriteLine(data);
' Import Excel File from file's path.
Dim workbook = New XLWorkbook("SimpleTemplate.xlsx")

' Read worksheet from workbook using sheet number.
Dim worksheet1 = workbook.Worksheet(1)

' Read cell value from first sheet
Dim data = worksheet1.Cell("A1").GetValue(Of String)()

' Display on screen
Console.WriteLine(data)
VB   C#

6. Trabajar con fórmulas de Excel

Las fórmulas de Excel son una de las características más importantes del trabajo con Excel. Ambas bibliotecas disponen de un potente motor de cálculo de fórmulas. Permiten trabajar con fórmulas y aplicarlas fácilmente a las celdas.

6.1. Trabajar con fórmulas de Excel usando IronXL

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 recalculating 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 recalculating 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 recalculating all formula values in all sheets.
workbook.EvaluateAll()
VB   C#

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()
VB   C#

6.2. Trabajar con fórmulas de Excel utilizando ClosedXML

ClosedXML no admite todas las fórmulas y probablemente obtendrás un error desagradable si la fórmula no es compatible o si hay un error en la fórmula. Por favor, pruebe sus fórmulas antes de pasar a producción. Veamos cómo utilizarlos.

// Set Formulas
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";

// You can use Evaluate function to directly calculate formula,
var sum = worksheet.Evaluate("SUM(B1:B7)");

// Force recalculation
worksheet.RecalculateAllFormulas();

// Save Excel file
workbook.SaveAs("Formula Calculation.xlsx");
// Set Formulas
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";

// You can use Evaluate function to directly calculate formula,
var sum = worksheet.Evaluate("SUM(B1:B7)");

// Force recalculation
worksheet.RecalculateAllFormulas();

// Save Excel file
workbook.SaveAs("Formula Calculation.xlsx");
' Set Formulas
worksheet.Cell("A1").Value = "Hello World!"
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)"

' You can use Evaluate function to directly calculate formula,
Dim sum = worksheet.Evaluate("SUM(B1:B7)")

' Force recalculation
worksheet.RecalculateAllFormulas()

' Save Excel file
workbook.SaveAs("Formula Calculation.xlsx")
VB   C#

La propiedad FormulaA1 es con referencia a la celda A1. Si está haciendo referencia a alguna otra celda debe añadirla a la propiedad Fórmula. Por ejemplo, FormulaC2.

7. Licencias

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.

Paquetes de licencias IronXL

Paquetes de licencias IronXL

En el caso de ClosedXML, las aplicaciones que utilicen este archivo DLL no requieren una licencia independiente, ni para uso individual ni para uso comercial. Para que cualquier solución funcione con un ClosedXML, basta con instalar el paquete NuGet "ClosedXML" disponible públicamente. ClosedXML está bajo la Licencia MIT. La licencia MIT es una licencia permisiva breve y sencilla cuyas condiciones sólo exigen la conservación de los avisos de copyright y licencia. Las obras bajo licencia, las modificaciones y las obras de mayor envergadura pueden distribuirse en condiciones diferentes y sin código fuente.

Licencia ClosedXML

Licencia ClosedXML

8. Resumen y conclusiones

Resumen

IronXL es una completa biblioteca que ofrece todo lo necesario para manipular un archivo Excel. IronXL permite a los desarrolladores leer, generar y editar Excel (y otros archivos de hojas de cálculo) en aplicaciones y sitios web .NET. Proporciona un enfoque rápido y natural para trabajar con Excel y otros archivos de hojas de cálculo en C#.

ClosedXML es una biblioteca .NET para leer y escribir archivos Excel, que facilita a los desarrolladores la creación de archivos Excel 2007+. Proporciona una forma agradable orientada a objetos para manipular los archivos (similar a VBA) sin tener que lidiar con las complicaciones de los documentos XML. Puede ser utilizado por cualquier lenguaje .NET como C# y Visual Basic (VB). Ofrece características de OpenXML, pero algunas aún no están implementadas. Por ejemplo, macros, incrustación y gráficos.

Conclusión

IronXL también es útil en otras operaciones de Excel como formatos de datos de celdas, ordenación, estilo de celdas. También puede trabajar con hojas de cálculo Excel como System.Data.DataSet y System.Data.DataTable. Es compatible con aplicaciones basadas en consola, servidor web y escritorio. También es compatible con todas las plataformas de sistema operativo.

ClosedXML es una librería ligera para leer, manipular y escribir aplicaciones Excel usando la API OpenXML que es rápida y fácil de implementar. Ayuda en todas las operaciones principales de Excel como Configurar Página, Congelar Paneles, Hipervínculos, Tablas y Formato Condicional. No tiene sobrecarga ni problemas de bajo rendimiento.

En comparación, tanto IronXL como ClosedXML son rápidos y precisos cuando se trata de hojas de cálculo Excel. No necesitan instalación ni licencia de Microsoft Office a la hora de crear informes Excel. Sin embargo, IronXL tiene una ventaja sobre ClosedXML, ya que ClosedXML no es seguro para los hilos. IronXL es fácil de usar y ofrece la posibilidad de convertir otros formatos a XLSX, y también de XLSX a otros formatos como CSV y HTML. ClosedXML no permite esta conversión. Esta interconversión permite a los usuarios la flexibilidad de trabajar con otros formatos de archivo con facilidad.

Ahora puedes conseguir cinco productos Iron por el precio de sólo dos en paquete lite para 1 desarrollador($1498) e ilimitado por 5.998 $ y ahorra hasta un 60%.

< ANTERIOR
Comparación entre IronXL y FastExcel para .NET
SIGUIENTE >
Comparación entre IronXL y GrapeCity Excel Viewer

¿Listo para empezar? Versión: 2024.9 acaba de salir

Descarga gratuita de NuGet Descargas totales: 1,013,614 Ver licencias >