COMPARACIóN CON OTROS COMPONENTES

Comparación entre IronXL y ClosedXML

Actualizado 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 marco .NET. 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.

//Añadir datos y estilos a la nueva hoja de cálculo
worksheet ["A1"].Value = "Hello World";
worksheet ["A2"].Style.BottomBorder.SetColor("#ff6600");
worksheet ["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
//Añadir datos y estilos a la nueva hoja de cálculo
worksheet ["A1"].Value = "Hello World";
worksheet ["A2"].Style.BottomBorder.SetColor("#ff6600");
worksheet ["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Guardar archivo 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
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.

//  Cree un nuevo archivo Excel vacío.
var workbook = new XLWorkbook();

//  Crea una nueva hoja de cálculo y establece el valor de la celda A1 en '¡Hola mundo!
var worksheet = workbook.Worksheets.Add("ClosedXML Features");
worksheet.Cell("A1").Value = "Hello world!";

//  Guardar en archivo XLSX.
workbook.SaveAs("Spreadsheet.xlsx");
//  Cree un nuevo archivo Excel vacío.
var workbook = new XLWorkbook();

//  Crea una nueva hoja de cálculo y establece el valor de la celda A1 en '¡Hola mundo!
var worksheet = workbook.Worksheets.Add("ClosedXML Features");
worksheet.Cell("A1").Value = "Hello world!";

//  Guardar en archivo XLSX.
workbook.SaveAs("Spreadsheet.xlsx");
'  Cree un nuevo archivo Excel vacío.
Dim workbook = New XLWorkbook()

'  Crea una nueva hoja de cálculo y establece el valor de la celda A1 en '¡Hola mundo!
Dim worksheet = workbook.Worksheets.Add("ClosedXML Features")
worksheet.Cell("A1").Value = "Hello world!"

'  Guardar en archivo XLSX.
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:

//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")
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:

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

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

//  Importar archivo Excel desde la ruta del archivo.
var workbook = new XLWorkbook("SimpleTemplate.xlsx");

//  Leer hoja de trabajo del libro de trabajo utilizando el número de hoja.
var worksheet1 = workbook.Worksheet(1);

//  Leer el valor de la celda de la primera hoja
var data = worksheet1.Cell("A1").GetValue<string>();

//  Visualización en pantalla
Console.WriteLine(data);
//  Importar archivo Excel desde la ruta del archivo.
var workbook = new XLWorkbook("SimpleTemplate.xlsx");

//  Leer hoja de trabajo del libro de trabajo utilizando el número de hoja.
var worksheet1 = workbook.Worksheet(1);

//  Leer el valor de la celda de la primera hoja
var data = worksheet1.Cell("A1").GetValue<string>();

//  Visualización en pantalla
Console.WriteLine(data);
'  Importar archivo Excel desde la ruta del archivo.
Dim workbook = New XLWorkbook("SimpleTemplate.xlsx")

'  Leer hoja de trabajo del libro de trabajo utilizando el número de hoja.
Dim worksheet1 = workbook.Worksheet(1)

'  Leer el valor de la celda de la primera hoja
Dim data = worksheet1.Cell("A1").GetValue(Of String)()

'  Visualización en pantalla
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:

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

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()
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.

//  Establecer fórmulas
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";

//  Puede utilizar la función Evaluar para calcular directamente la fórmula,
var sum = worksheet.Evaluate("SUM(B1:B7)");

//  Forzar recálculo
worksheet.RecalculateAllFormulas();

//  Guardar archivo Excel
workbook.SaveAs("Formula Calculation.xlsx");
//  Establecer fórmulas
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";

//  Puede utilizar la función Evaluar para calcular directamente la fórmula,
var sum = worksheet.Evaluate("SUM(B1:B7)");

//  Forzar recálculo
worksheet.RecalculateAllFormulas();

//  Guardar archivo Excel
workbook.SaveAs("Formula Calculation.xlsx");
'  Establecer fórmulas
worksheet.Cell("A1").Value = "Hello World!"
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)"

'  Puede utilizar la función Evaluar para calcular directamente la fórmula,
Dim sum = worksheet.Evaluate("SUM(B1:B7)")

'  Forzar recálculo
worksheet.RecalculateAllFormulas()

'  Guardar archivo Excel
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 $599.

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.6 recién publicada

Comenzar prueba gratuita Descargas totales: 850,626
Ver licencias >