Trabajo con Excel en C# (.NET): resumen de bibliotecas populares
En el desarrollo moderno en la plataforma .NET, a menudo surge la necesidad de interactuar programáticamente con archivos de Microsoft Excel. Esto puede incluir la creación de informes, importación de datos, exportación de tablas o automatización de flujos de documentos. En este artículo, analizaremos las tres bibliotecas más populares para trabajar con Excel en C#: EPPlus, ClosedXML y NPOI. Cada una tiene sus propias características, ventajas y limitaciones.
1. EPPlus — una potente herramienta para trabajar con XLSX
EPPlus es una de las bibliotecas más populares para trabajar con el formato Office Open XML (XLSX). Proporciona una amplia API para crear, leer y formatear documentos de Excel. A partir de la versión 5, EPPlus se distribuye bajo la licencia Polyform Noncommercial (gratuita solo para uso no comercial); sin embargo, para proyectos comerciales se requiere la compra de una licencia.
Características principales:
- Soporte completo para formato de celdas (fuentes, colores, bordes, alineación)
- Trabajo con gráficos, tablas dinámicas y formato condicional
- Soporte para fórmulas y cálculos
- Trabajo con imágenes y comentarios
- Alto rendimiento al trabajar con archivos grandes
Ejemplo de creación de un archivo Excel con EPPlus:
using OfficeOpenXml;
class Program{ static void Main() { ExcelPackage.LicenseContext = LicenseContext.NonCommercial; // Para uso comercial se requiere licencia using (var package = new ExcelPackage()) { var worksheet = package.Workbook.Worksheets.Add("Informe"); // Rellenamos los encabezados worksheet.Cells["A1"].Value = "Nombre"; worksheet.Cells["B1"].Value = "Edad"; worksheet.Cells["C1"].Value = "Ciudad"; // Rellenamos los datos worksheet.Cells["A2"].Value = "Ana"; worksheet.Cells["B2"].Value = 28; worksheet.Cells["C2"].Value = "Moscú"; // Formateo worksheet.Cells["A1:C1"].Style.Font.Bold = true; worksheet.Cells["A1:C1"].Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid; worksheet.Cells["A1:C1"].Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.LightBlue); // Guardamos el archivo package.SaveAs(new FileInfo("report.xlsx")); } }}2. ClosedXML — una API simple e intuitiva
ClosedXML es una biblioteca de código abierto (licencia MIT) que proporciona una interfaz conveniente y concisa para trabajar con archivos XLSX. Está construida sobre DocumentFormat.OpenXml, pero oculta la complejidad de la API de bajo nivel. ClosedXML es ideal para la creación rápida de informes y tablas simples.
Ventajas de ClosedXML:
- Sintaxis simple y legible
- Completamente gratuita para uso comercial
- Buen soporte para estilos y formato
- Soporte integrado para trabajar con fechas y fórmulas
Ejemplo de lectura de datos desde Excel con ClosedXML:
using ClosedXML.Excel;
class Program{ static void Main() { using (var workbook = new XLWorkbook("data.xlsx")) { var worksheet = workbook.Worksheet(1); // Leemos los datos fila por fila foreach (var row in worksheet.RowsUsed()) { var name = row.Cell(1).GetValue<string>(); var age = row.Cell(2).GetValue<int>(); var city = row.Cell(3).GetValue<string>(); Console.WriteLine($"{name}, {ag