Saltar al pie de página
COMPARAR CON OTROS COMPONENTES
Una Comparación entre IronXL y ClosedXML

Una comparación de IronXL y ClosedXML

IronXL and ClosedXMLare both .NET libraries for reading, manipulating, and writing Excel documents without requiring Microsoft Excel. This comparison covers their APIs and feature scope with working code examples, so you can determine which fits your project's requirements.

What Is IronXL?

IronXL is a .NET library for reading and editing Microsoft Excel documents in 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 is an intuitive C# API that allows you to read, edit, and create Excel spreadsheet files in .NET. IronXLes compatible con .NET Core, .NET Framework, Xamarin, Mobile, Linux, macOS y Azure.

IronXL is a widely-used .NET Core and .NET Framework Excel spreadsheet library for C#.

Conjunto de características de IronXL

  • Cargar, leer y editar datos de XLS/XLSX/CSV/TSV
  • Guardar y exportar a XLS/XLSX/CSV/TSV/JSON
  • Objetos de System.Data: Trabajar con hojas de cálculo de Excel como objetos System.Data.DataSet y System.Data.DataTable.
  • Fórmulas: Trabajar con fórmulas de Excel, recalculadas cada vez que se edita una hoja.
  • Rangos: Sintaxis de hoja de trabajo fácil de usar ["A1:B10"]. Combina y crea rangos de manera intuitiva.
  • Ordenación: Ordenar rangos, columnas y filas.
  • Styling: Cell visual styles, font, size, background pattern, border, alignment, and number formats.

Se pueden explorar más características de IronXLusando este enlace.

ClosedXML

ClosedXML es una biblioteca .NET para leer, manipular y escribir archivos de Excel 2007+ (.xlsx, .xlsm). Su objetivo es proporcionar una interfaz intuitiva y fácil de usar para tratar con la biblioteca subyacente de OpenXML. El .xlsx es una extensión de archivo para un formato de archivo de hoja de cálculo API subyacente de OpenXML utilizado por Microsoft Excel. Los archivos .xlsm soportan 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 de Office OpenXML.

ClosedXML es una biblioteca .NET para la generación de informes en Microsoft Excel sin requerir 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 de API para manejar la creación y extracción de contenido en Excel. Con estas llamadas API y solicitudes de extracción, puedes modificar cada pequeño detalle en una hoja o libro de Excel. Características a continuación:

  1. Fórmulas
  2. Validación
  3. Hipervínculos
  4. Protección (a nivel de hoja y celda)
  5. Formato condicional
  6. Congelar paneles
  7. Tablas
  8. Rangos
  9. Estilizado
  10. Configuración de página (Impresión)
  11. Auto-filtros
  12. Comentarios

The table below provides a side-by-side snapshot of the key differences between IronXLand ClosedXMLdiscussed throughout this article.

Característica IronXL ClosedXML
XLS Format Support No
XLSX Format Support
CSV/TSV Import & Export No
HTML Export No
JSON Export No
Seguridad de los hilos No
Formula Engine Full recalculation Partial formula support
Licencias Commercial (free for development) MIT (gratuito)

IronXL is free for development use; a free 30-day trial unlocks the full feature set for evaluation.

El resto de este artículo continúa de la siguiente manera:

  1. Crear una aplicación de consola
  2. Instalación de la biblioteca C# de IronXL
  3. Instalación de ClosedXML
  4. Crear y guardar un nuevo libro y hoja de trabajo de Excel
  5. Leer archivo de Excel
  6. Trabajar con fórmulas de Excel
  7. Licenciamiento
  8. Which Library Should You Choose?

1. Crear una aplicación de consola

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

  • Inicia el IDE de Visual Studio 2022.
  • Haz clic en "Crear un nuevo proyecto."
  • En la página "Crear un nuevo proyecto", selecciona C# en la lista desplegable de idiomas, Windows de la lista de Plataformas, y Consola de la lista de Tipos de proyectos.
  • Selecciona Aplicación de Consola (.NET Framework) de las plantillas de proyecto mostradas.
Crear un proyecto

Crear un proyecto

  • Haz clic en Siguiente.
  • Nombra el proyecto "DemoApp" y haz clic en Siguiente.
Proyecto DemoApp

Proyecto DemoApp

  • En la pantalla de Información Adicional, especifica la versión del Framework que deseas utilizar. Usaremos .NET Framework 6.0 en este ejemplo.
.NET Framework 6.0

.NET Framework 6.0

  • Haz clic en Crear para completar el proceso.

Ahora, el proyecto está creado y estamos casi listos para probar las bibliotecas. Sin embargo, aún necesitamos instalarlas e integrarlas en nuestro proyecto. Let's get started with IronXL first.

2. Instalación de la biblioteca IronXLC

Puedes descargar e instalar la biblioteca IronXL usando los siguientes métodos:

  1. Usando Visual Studio con paquetes de NuGet.
  2. Instalación manual del DLL.

Echemos un vistazo más de cerca a cada uno.

2.1. Uso de Visual Studio con paquetes NuGet

Visual Studio proporciona el Administrador de Paquetes NuGet para instalar paquetes NuGet en tus proyectos. Puedes acceder a él a través del menú Proyecto, o haciendo clic derecho en tu proyecto en el Explorador de Soluciones.

Administrador de paquetes

Administrador de paquetes

  • A continuación, desde la pestaña Examinar > busca IronXL.Excel > Instalar
Instalación de IronXLNuGet

Instalación de IronXLNuGet

  • Y hemos terminado.

2.2. Instalación manual de la DLL

Otra forma de descargar e instalar la Biblioteca C# de IronXLes usar los siguientes pasos para instalar el paquete NuGet de IronXL a través de la ventana de comandos del desarrollador.

  • Abre el Símbolo del Sistema para Desarrolladores — generalmente se encuentra en la carpeta de Visual Studio.

Escribe el siguiente comando:

Install-Package IronXL.Excel
  • Presiona Enter.
  • Esto descargará e instalará el paquete.
  • Recarga tu proyecto de Visual Studio y comienza a usarlo.

2.3. Agregar directivas de uso necesarias

  1. En el Explorador de Soluciones, haz clic derecho en el archivo Program.cs y luego haz clic en Ver Código.
  2. Añade las siguientes directivas de uso en la parte superior del archivo de código:
using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

¡Todo listo! IronXLestá descargado, instalado y listo para usar. Sin embargo, antes de eso, deberíamos instalar ClosedXML.

3. Instalación de ClosedXML

Para instalar el paquete ClosedXML, puedes descargarlo directamente desde NuGet o desde el Administrador/Consola de Paquetes NuGet en el proyecto.

For directly installing ClosedXML, click on this link.

3.1. Uso del administrador/consola de paquetes NuGet

Abre el Administrador de Paquetes NuGet desde el explorador de soluciones del proyecto, busca ClosedXMLy haz clic en instalar.

Instalación de NuGet para ClosedXML

Instalación de NuGet para ClosedXML

O:

  • Abre el Símbolo del Sistema para Desarrolladores — generalmente se encuentra en la carpeta de Visual Studio.

Escribe el siguiente comando:

Install-Package ClosedXML
  • Presiona Enter.
  • Esto descargará e instalará el paquete.
  • Recarga tu proyecto de Visual Studio y comienza a usarlo.

3.2. Agregar directivas de uso necesarias

  1. En el Explorador de Soluciones, haz clic derecho en el archivo Program.cs y luego haz clic en Ver Código.
  2. Añade las siguientes directivas de uso en la parte superior del archivo de código:
using ClosedXML.Excel;
using ClosedXML.Excel;
$vbLabelText   $csharpLabel

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

Un libro de trabajo es un archivo de Excel que contiene múltiples hojas de trabajo con filas y columnas. Ambas bibliotecas ofrecen la facilidad de crear un nuevo libro de Excel y hojas. Let's have a look at the code step-by-step, and you can find additional IronXL code examples for further reference.

4.1. Nuevo libro de trabajo y hojas de cálculo de Excel con IronXL

Creating a new Excel Workbook using IronXLtakes a single line of code. Add the following to your static void main function in the Program.cs file:

// Create a new Excel workbook using IronXL
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
// Create a new Excel workbook using IronXL
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
$vbLabelText   $csharpLabel

Con IronXLse pueden crear tanto formatos de archivo XLS (versión anterior de archivos de Excel) como XLSX (versión actual y más reciente).

Y, es aún más simple crear una hoja de trabajo predeterminada:

// Create a new worksheet within the workbook
var worksheet = workbook.CreateWorkSheet("IronXL Features");
// Create a new worksheet within the workbook
var worksheet = workbook.CreateWorkSheet("IronXL Features");
$vbLabelText   $csharpLabel

Ahora puedes utilizar la variable de la hoja de trabajo 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;
$vbLabelText   $csharpLabel

Guarda el archivo de Excel:

// Save the spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
// Save the spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
$vbLabelText   $csharpLabel

El archivo de salida se ve así:

NewExcelFile Output

Salida `NewExcelFile`

4.2. Nuevo libro y hojas de Excel con ClosedXML

También puedes crear archivos de Excel (.xlsx, .xlsm) fácilmente usando ClosedXML. El siguiente código es un ejemplo típico que sirve para generar un archivo de Excel simple y guardarlo. Puedes agregar una nueva hoja de ejemplo a tu libro de trabajo y asignar valores a celdas en tu aplicación de 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");
$vbLabelText   $csharpLabel

El archivo de salida se ve así:

Salida de archivo de hoja de cálculo

Salida de archivo de hoja de cálculo

5. Leer archivo de Excel (Importar archivo de Excel)

Both libraries can open and read existing Excel documents. Echemos un vistazo al código de ejemplo.

5.1. Leer archivos de Excel con IronXL

The IronXLWorkBook class represents an Excel sheet. To open an Excel file using C#, we use WorkBook.Load and specify the path of the file (.xlsx). La siguiente línea de código se utiliza para abrir el archivo para lectura:

// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
$vbLabelText   $csharpLabel

Each WorkBook can have multiple worksheets in the Excel document. Si el libro contiene múltiples hojas de trabajo, recupéralos por nombre de la siguiente manera:

// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
$vbLabelText   $csharpLabel

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);
}
$vbLabelText   $csharpLabel

5.2. Leer archivos de Excel con ClosedXML

ClosedXML permite la lectura de archivos previamente creados desde tu aplicación C#. Puedes importar un archivo de Excel usando 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 the 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 the first sheet
var data = worksheet1.Cell("A1").GetValue<string>();

// Display on screen
Console.WriteLine(data);
$vbLabelText   $csharpLabel

6. Trabajar con fórmulas de Excel

Las fórmulas de Excel son una de las características más importantes al trabajar con Excel. Both libraries have a powerful formula calculation engine. They provide the facility to work with formulas and easily apply them to cells.

6.1. Trabajar con fórmulas de Excel con IronXL

Después de cargar el libro y la hoja de trabajo, el siguiente ejemplo de código puede usarse 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();
$vbLabelText   $csharpLabel

También puedes 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();
$vbLabelText   $csharpLabel

6.2. Trabajar con fórmulas de Excel mediante ClosedXML

ClosedXML's formula engine covers many common functions, though not every Excel formula is within its current scope. If a formula is unsupported or contains an error, the library will throw an exception. It is worth testing your formulas before deploying to production. Veamos cómo usarlas.

// 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");
$vbLabelText   $csharpLabel

The property FormulaA1 is with reference to A1 cell. If you are referencing another cell, you must add it to the Formula property. E.g., FormulaC2.

7. Licencias

IronXL es una biblioteca de Excel en C# comercial abiertamente. Es gratis para desarrollo y siempre se puede obtener una licencia para despliegue comercial. Están disponibles licencias para uso de un solo proyecto, desarrolladores individuales, agencias y corporaciones globales, así como redistribución SaaS y OEM. Todas las licencias incluyen una garantía de devolución de dinero de 30 días, un año de soporte al producto y actualizaciones, validez para dev/staging/producción, y también una licencia permanente (compra única). The lite package starts from $799.

Paquetes de licencias IronXL

Paquetes de licencias IronXL

Para ClosedXML, las aplicaciones que usan este archivo DLL no requieren una licencia separada ni para uso individual ni comercial. Para que cualquier solución funcione con ClosedXML, solo instala el paquete NuGet "ClosedXML" disponible públicamente. ClosedXMLestá licenciado bajo la Licencia MIT. La Licencia MIT es una licencia permisiva corta y sencilla con condiciones que solo requieren la preservación de los avisos de copyright y licencia. Las obras licenciadas, las modificaciones y las obras más grandes pueden distribuirse bajo diferentes términos y sin código fuente.

Licencia ClosedXML

Licencia ClosedXML

Beyond license cost, total project cost includes the developer hours spent on building format-conversion pipelines, managing thread-safety wrappers for concurrent workloads, and sourcing additional libraries for features outside ClosedXML's scope (such as CSV or HTML export). For teams evaluating cost over a multi-year project lifecycle, these integration and maintenance hours frequently eclipse the difference between open-source and commercial licensing.

8. Which Library Should You Choose?

Resumen

IronXL is a comprehensive library for manipulating Excel files. IronXLallows developers to read, generate, and edit Excel (and other Spreadsheet files) in .NET applications and websites. It ships as a single NuGet package with built-in support for XLS, XLSX, CSV, TSV, HTML, and JSON — covering format conversion, formulas, styling, and System.Data integration without additional dependencies.

ClosedXML es una biblioteca .NET para leer y escribir archivos de Excel, que facilita a los desarrolladores crear archivos de Excel 2007+. It provides a clean, object-oriented way to manipulate the files (similar to VBA) without dealing with the hassles of XML Documents. Puede ser utilizado por cualquier lenguaje .NET como C# y Visual Basic (VB). It provides many features of OpenXML, though some capabilities — such as Macros, Embedding, and Charts — are outside its current scope.

Conclusión

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

ClosedXML is a lightweight library for reading, manipulating, and writing Excel files using the OpenXML API, and it is straightforward to implement. It handles many common Excel operations well — Page Setup, Freeze Panes, Hyperlinks, Tables, and Conditional Formatting among them — and carries minimal performance overhead.

Both IronXLand ClosedXMLhandle Excel spreadsheet operations reliably and neither requires a Microsoft Office installation. Where the two libraries diverge is in architectural scope: IronXLprovides built-in thread safety — an important consideration for server-side or parallel workloads — while ClosedXMLis not designed for concurrent access. IronXLalso supports format interconversion (XLSX to and from CSV, HTML, and JSON), a capability that falls outside ClosedXML's focused feature set. For teams whose workflows involve importing or exporting across multiple file formats, this broader format coverage reduces the need for additional third-party tooling.

Ahora puedes obtener cinco productos de Iron por el precio de solo dos en el paquete ligero para 1 desarrollador($suitePrice) y ilimitado por $unlimitedSuitePrice y ahorrar hasta un 60%.

Ready to see how IronXLfits your project? Download the free 30-day trial to explore every feature covered in this comparison.

Por favor notaClosedXML es una marca registrada de su propietario correspondiente. Este sitio no está afiliado, patrocinado ni auspiciado por ClosedXML. Todos los nombres de producto, logotipos y marcas son propiedad de sus respectivos dueños. Las comparaciones son solo para fines informativos y reflejan información públicamente disponible en el momento de la redacción.

Preguntas Frecuentes

¿Cómo puedo leer archivos de Excel en C# sin usar Interop?

Para leer archivos de Excel en C# sin usar Interop, puede usar bibliotecas como IronXL o ClosedXML. Estas bibliotecas no requieren tener Microsoft Excel instalado y ofrecen métodos para leer y manipular archivos de Excel programáticamente.

¿Cuáles son los beneficios de usar IronXL para la manipulación de archivos de Excel?

IronXL proporciona una API fácil de usar, soporta una amplia gama de formatos de hojas de cálculo y ofrece operaciones como clasificación, estilo y manejo de fórmulas. También es seguro para la concurrencia y permite la exportación a varios formatos, convirtiéndolo en una herramienta versátil para la manipulación de archivos de Excel.

¿Puede IronXL manejar fórmulas de Excel?

Sí, IronXL puede manejar fórmulas de Excel. Permite crear, evaluar y manipular fórmulas dentro de los archivos de Excel, proporcionando una funcionalidad robusta para operaciones complejas de hojas de cálculo.

¿Qué plataformas son compatibles con IronXL?

IronXL es compatible con múltiples plataformas, incluyendo .NET Framework, .NET Core, Xamarin y Azure, lo que lo convierte en una opción flexible para desarrolladores que trabajan en diferentes entornos.

¿Cómo puedo convertir un archivo de Excel a HTML usando C#?

Para convertir un archivo de Excel a HTML usando C#, puede usar IronXL. Proporciona métodos para exportar archivos de Excel a formato HTML, permitiendo una fácil compartición y visualización de datos de hojas de cálculo en la web.

¿Cuál es la diferencia entre IronXL y ClosedXML con respecto al soporte de formatos?

IronXL soporta una amplia gama de formatos, incluyendo XLS, XLSX, CSV, TSV y JSON, y permite la conversión entre estos formatos. ClosedXML se enfoca en manejar archivos de Excel 2007+ (.xlsx, .xlsm) usando el formato OpenXML.

¿Cómo puedo instalar IronXL en un proyecto de C#?

Puede instalar IronXL en un proyecto de C# usando el Administrador de Paquetes NuGet en Visual Studio con el comando Install-Package IronXL.Excel o añadiendo manualmente el DLL a su proyecto.

¿Existen requisitos de licencia para usar IronXL en proyectos comerciales?

Sí, IronXL requiere una licencia comercial para su implementación en proyectos comerciales. Ofrece varias opciones de licencia, incluyendo licencia para un solo proyecto, para desarrolladores, para agencias y para corporaciones, con una garantía de devolución de dinero de 30 días.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame