Introducción a ClosedXML: qué es y para qué sirve
\n\nClosedXML es una potente biblioteca open-source para el lenguaje C# (.NET), diseñada para crear, leer y editar archivos de Microsoft Excel (formatos .xlsx, .xlsm, .xltx). Proporciona una interfaz orientada a objetos conveniente para trabajar con hojas de cálculo sin necesidad de instalar Microsoft Office ni utilizar objetos COM.
\n\nLa biblioteca es especialmente útil para:
\n- \n
- Automatización de informes — generación de informes complejos de Excel con datos de bases de datos, API u otras fuentes \n
- Importación/exportación de datos — procesamiento masivo de datos tabulares entre sistemas \n
- Creación de plantillas — llenado de plantillas de Excel previamente preparadas con datos \n
- Cálculos financieros y analíticos — trabajo con fórmulas, tablas dinámicas, gráficos \n
- Migración desde VBA — traslado de macros a C# moderno \n
ClosedXML admite todas las funcionalidades principales de Excel: formato de celdas, combinación de celdas, formato condicional, gráficos, tablas dinámicas, validación de datos, protección de hojas y mucho más. Además, la biblioteca funciona completamente en memoria y no requiere tener Excel instalado en el servidor.
\n\nInstalación de ClosedXML
\n\nLa instalación de ClosedXML se realiza a través del NuGet Package Manager. A continuación se muestran todas las formas de instalación:
\n\nA través de .NET CLI
\ndotnet add package ClosedXML\n\nA través de Package Manager Console (Visual Studio)
\nInstall-Package ClosedXML\n\nA través de NuGet Package Manager UI
\n- \n
- Abra el proyecto en Visual Studio \n
- Haga clic derecho en el proyecto → "Manage NuGet Packages" \n
- Busque "ClosedXML" y haga clic en "Install" \n
Verificación de la instalación
\nDespués de la instalación, agregue la directiva using a su código:
\nusing ClosedXML.Excel;\n\nInicio rápido: creando su primera tabla de Excel
\n\nVamos a crear una tabla simple con datos de empleados y guardarla en un archivo:
\n\nusing ClosedXML.Excel;\n\nclass Program\n{\n static void Main(string[] args)\n {\n // Crear un nuevo libro de trabajo\n using (var workbook = new XLWorkbook())\n {\n // Agregar una hoja de trabajo\n var worksheet = workbook.Worksheets.Add("Empleados");\n\n // Llenar los encabezados\n worksheet.Cell("A1").Value = "ID";\n worksheet.Cell("B1").Value = "Nombre";\n worksheet.Cell("C1").Value = "Cargo";\n worksheet.Cell("D1").Value = "Salario";\n\n // Llenar los datos\n worksheet.Cell("A2").Value = 1;\n worksheet.Cell("B2").Value = "Iván Petrov";\n worksheet.Cell("C2").Value = "Desarrollador";\n worksheet.Cell("D2").Value = 150000;\n\n worksheet.Cell("A3").Value = 2;\n worksheet.Cell("B3").Value = "María Sidorova";\n worksheet.Cell("C3").Value = "Analista";\n worksheet.Cell("D3").Value = 120000;\n\n // Formatear los encabezados\n var headerRange = worksheet.Range("A1:D1");\n headerRange.Style.Font.Bold = true;\n headerRange.Style.Fill.BackgroundColor = XLColor.LightBlue;\n\n // Ajustar automáticamente el ancho de las columnas\n worksheet.Columns().AdjustToContents();\n\n // Guardar el archivo\n workbook.SaveAs("employees.xlsx");\n }\n\n Console.WriteLine("¡Archivo creado exitosamente!");\n }\n}\n\nEste ejemplo crea un archivo employees.xlsx con tres filas de datos y encabezados formateados.
Métodos y funciones principales de ClosedXML
\n\n1. Creación de libro de trabajo y hojas
\nMétodo: new XLWorkbook() y workbook.Worksheets.Add()
Descripción: Cre