: Hemos probado 12 bibliotecas de C# Excel contra tareas idénticas: creación de libros de trabajo, lectura de grandes conjuntos de datos, formatación de células y exportación a través de plataformas.Esta guía cubre todo, desde opciones de código abierto con licencia de MIT a suites comerciales de nivel empresarial, con código de lado a lado, criterios de rendimiento, costes de licencia y un marco de decisión para ayudarle a elegir la biblioteca adecuada para su proyecto. TL;DR Pasamos tres semanas ejecutando cada una de las 12 bibliotecas en esta comparación a través de escenarios de prueba idénticos: crear libros de trabajo desde cero, leer 100,000 conjuntos de datos, aplicar formatación condicional y exportar a XLSX y CSV en Windows y Linux. Divulgación completa: Somos el equipo de DevRel detrás , una de las 12 bibliotecas en esta comparación. Dicho esto, creemos que las evaluaciones honestas sirven a todos mejor que el marketing spin. Mostraremos nuestra metodología, reconoceremos nuestros prejuicios y dejaremos que los parámetros hablen por sí mismos. Irónico Aquí está lo que el paisaje parece a simple vista - entonces vamos a profundizar en cada biblioteca. // The task every library in this article performs: // Create a workbook → write headers + 3 data rows → save as XLSX // IronXL (3 lines of core logic) using IronXL; WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet ws = wb.CreateWorkSheet("Sales"); ws["A1"].Value = "Product"; ws["B1"].Value = "Revenue"; ws["A2"].Value = "Widget"; ws["B2"].DoubleValue = 14999.99; wb.SaveAs("sales_ironxl.xlsx"); Resultados de IronXL Mostraremos la versión de cada biblioteca de esta tarea a continuación, porque la mejor manera de evaluar una API es leer el código. Antes de entrar en los perfiles individuales, una nota sobre la metodología. Hemos evaluado cada biblioteca en siete dimensiones: (cuántas líneas para realizar tareas comunes), (cuáles son los tipos de archivos que puedes leer y escribir) (Cartas, pívots y fórmulas) (Escribe la velocidad y el uso de la memoria a escala), (Linux, Docker y la nube) (el coste real, incluidas las tarifas ocultas), y (cadencia de lanzamiento, tamaño de la comunidad, calidad de la documentación).No hay una sola biblioteca que supere a las siete, el peso que asigna a cada dimensión determina su mejor opción. API ergonomics format support feature depth performance cross-platform support licensing clarity maintenance health ¿Qué biblioteca de C# de Excel debe elegir? la tabla de referencia rápida Antes de sumergirse en 12 perfiles individuales, aquí está la tabla de comparación. Cada afirmación en esta tabla se verifica contra la documentación de cada biblioteca y el paquete NuGet a partir de febrero de 2026. Library License Entry Price XLSX Files XLS Files CSV Files .NET 8 LTS .NET 10 Linux/Docker Charts Pivot Tables Formula Engine NuGet Downloads IronXL Commercial $749/yr ✅ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ✅ 3M+ EPPlus Commercial $299/yr ✅ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 80M+ ClosedXML MIT Free ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ ✅ 60M+ NPOI Apache 2.0 Free ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ 50M+ Aspose.Cells Commercial $1,199/yr ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 20M+ Syncfusion XlsIO Commercial/Free* $0–$995/yr ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 15M+ GemBox.Spreadsheet Freemium $0–$890 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 5M+ OpenXML SDK MIT Free ✅ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ❌ 100M+ ExcelDataReader MIT Free ✅ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ❌ 70M+ Spire.XLS Commercial $999/dev ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 3M+ SpreadsheetLight MIT Free ✅ ❌ ✅ ⚠️ ❌ ⚠️ ✅ ❌ ✅ 2M+ SpreadsheetGear Commercial $975/dev ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅ 1M+ IronXL comerciales $749 / año ✅ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ✅ 3M+ EPPlus EPPLUS comerciales 299 dólares/año ✅ ❌ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 80 M+ ClosedXML CierraXML con libre ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ ✅ 60 M+ NPOI El Apache 2.0 libre ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ 50 M+ Aspose.Cells comerciales $1.199 por año ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 20 M+ Syncfusion XlsIO Commercial/Free* $0–$995 por año ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 15 M+ GemBox.Spreadsheet GemBox.Spreadsheet Freemium 0 - 890 dólares ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 5M+ OpenXML SDK con libre ✅ ❌ ❌ ✅ ✅ ✅ ✅ ✅ ❌ 100m+ ExcelDataReader con libre ✅ ✅ ✅ ✅ ✅ ✅ ❌ ❌ ❌ 70 M+ Spire.XLS Spire.XLS Commercial $999 / Dólar ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ 3M+ SpreadsheetLight MIT libre ✅ ❌ ✅ ☀️ ❌ ☀️ ✅ ❌ ✅ 2M+ SpreadsheetGear comerciales $975 / Dólar ✅ ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅ 1M+ Syncfusion offers a for companies with <$1M revenue and ≤5 developers. free Community License ⚠️ = Soporte parcial o no verificado. free Community License The short version, by scenario: Presupuesto estricto, lectura completa/escritura? → ClosedXML (MIT, desarrollo maduro, activo) Enterprise-grade con soporte premium? → IronXL o Aspose.Cells → Aspose.Cells or Syncfusion XlsIO Maximum feature coverage? → ExcelDataReader Read-only, maximum speed? → OpenXML SDK Low-level control, no abstraction? → NPOI Java port, legacy XLS required? Veamos cada una de las bibliotecas en detalle. The 12 C# Excel Libraries Worth Knowing in 2026 Cada perfil a continuación sigue la misma estructura: qué es la biblioteca, un ejemplo de código que realiza la tarea estándar (crear un libro de trabajo, escribir datos, guardar), sus verdaderos puntos fuertes y limitaciones, y quién debe usarlo. 1. IronXL — The All-in-One Commercial .NET Library IronXL es una biblioteca comercial de .NET Excel de que prioriza la simplicidad de la API y la implementación de plataformas. Lee y escribe XLS, XLSX, CSV, TSV y JSON sin requerir Microsoft Office. Su extenso conjunto de características también incluye la creación y edición de hojas de cálculo de Microsoft Excel, la capacidad de exportar libros de cálculo de Excel, trabajar con fórmulas y más. Incluso puede agregar formatos de imagen a sus hojas de cálculo de Excel. Cadencia de publicación mensual — la última versión (2026.2) incluye soporte para .NET 10. Iron Software using IronXL; // Create a new workbook and write data WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet ws = wb.CreateWorkSheet("Sales"); ws["A1"].Value = "Product"; ws["B1"].Value = "Revenue"; ws["C1"].Value = "Date"; ws["A2"].Value = "Widget"; ws["B2"].DoubleValue = 14999.99; ws["C2"].Value = DateTime.Now.ToShortDateString(); // Apply formatting ws["B1:B2"].FormatString = "$#,##0.00"; wb.SaveAs("sales_ironxl.xlsx"); IronXL salida Excel archivo La API utiliza un patrón de direccionamiento de células de WorkBook → WorkSheet → que refleja cómo los desarrolladores piensan sobre las hojas de cálculo. La direccionamiento de células soporta la notación A1 (ws["B2"]) y las expresiones de rango (ws["A1:C10"]), y la propiedad FormatString acepta códigos de formato estándar de Excel. Strengths: Minimal boilerplate, crear, leer y exportar datos en 3-5 líneas de código. Esto hace que sea una pieza de pastel para agregar a sus aplicaciones .NET Cross-platform: Windows, Linux, macOS, Docker, Azure, AWS Lambda — all tested. Works across different .NET versions Ediciones mensuales con correcciones de errores activos; la simplicidad a nivel de la API es el diferencial principal, no el rendimiento bruto (véase la sección de Benchmarks para números honestos) Soporta XLS (legado) + XLSX + CSV + TSV + JSON en una API unificada Real-world deployment: uses IronXL for nonprofit financial reconciliation, achieving 4× faster payment processing; powers logistics and healthcare Excel automation across Germany Brainycom ThreeB IT Limitations: No hay creación de gráficos (puedes leer los gráficos existentes, pero no generarlos programáticamente) No pivot table generation Commercial license required for production ($749/year for Lite) Smaller community compared to EPPlus or ClosedXML Los equipos que necesitan una API limpia para leer/escribir/exportar datos de Excel a través de plataformas no necesitan la generación de gráficos y valoran el soporte profesional y las actualizaciones frecuentes. Best for: 2. — The Community Favorite Gone Commercial EPPLUS EPPlus is one of the most downloaded .NET Excel libraries in history. Originally MIT-licensed, it in version 5 (2020). The last free version ( ) remains widely used but unmaintained. The commercial version is feature-rich with charts, pivot tables, and a strong formula engine. Se ha cambiado a una licencia comercial Polyform 4.5.3 on NuGet using OfficeOpenXml; ExcelPackage.License.SetNonCommercialOrganization("My Organization"); using var package = new ExcelPackage(); var ws = package.Workbook.Worksheets.Add("Sales"); ws.Cells["A1"].Value = "Product"; ws.Cells["B1"].Value = "Revenue"; ws.Cells["C1"].Value = "Date"; ws.Cells["A2"].Value = "Widget"; ws.Cells["B2"].Value = 14999.99; ws.Cells["C2"].Value = DateTime.Now; ws.Cells["C2"].Style.Numberformat.Format = "yyyy-mm-dd"; ws.Cells["B1:B2"].Style.Numberformat.Format = "$#,##0.00"; package.SaveAs(new FileInfo("sales_epplus.xlsx")); EEPlus Output EPPlus utiliza una jerarquía de ExcelPackage → Workbook → Sheets que refleja de cerca el modelo de objeto de Excel. La propiedad Cells acepta referencias de estilo A1 y el estilo se aplica a través de un objeto de estilo anclado. Tenga en cuenta la línea de configuración de la licencia, EPPlus 5+ requiere que establezca un contexto de licencia antes de cualquier operación. Strengths: Comunidad y ecosistema masivos, más de 80 millones de descargas de NuGet, extensa cobertura de Stack Overflow Charts, pivot tables, conditional formatting, data validation, VBA support Powerful LoadFromCollection<T>() and LoadFromDataTable() for object-to-Excel mapping Motor de fórmula madura con amplia cobertura de funciones Limitations: Solo XLSX, sin soporte para los formatos XLS legacy Commercial license required for any commercial use since v5 ($299/year base) Versión 4.5.3 (última versión gratuita) no se mantiene y faltan años de correcciones de errores Can struggle with memory on very large files (100K+ rows) in some configurations Teams with existing EPPlus investments, projects needing charts/pivot tables on a moderate budget, and developers who value the enormous community knowledge base. Best for: ClosedXML — La elección del desarrollador de código abierto para la API de Excel wraps Microsoft's in a developer-friendly API. MIT-licensed, actively maintained (frequent commits on Es la recomendación ideal cuando los desarrolladores piden una biblioteca de Excel gratuita y completa. and .NET community forums. ClosedXML Descargar OpenXML SDK GitHub Stack Overflow using ClosedXML.Excel; using var wb = new XLWorkbook(); var ws = wb.AddWorksheet("Sales"); ws.Cell("A1").Value = "Product"; ws.Cell("B1").Value = "Revenue"; ws.Cell("C1").Value = "Date"; ws.Cell("A2").Value = "Widget"; ws.Cell("B2").Value = 14999.99; ws.Cell("C2").Value = DateTime.Now; ws.Cell("B2").Style.NumberFormat.Format = "$#,##0.00"; wb.SaveAs("sales_closedxml.xlsx"); ClosedXML Output La API de ClosedXML es intuitiva: XLWorkbook → AddWorksheet → Cell() con dirección basada en cuerdas. La cadena de propiedades de estilo es limpia y descubierta a través de IntelliSense. Se basa en el SDK OpenXML, por lo que genera archivos .xlsx compatibles con las especificaciones. Strengths: Licencia MIT, verdaderamente libre para todo uso, incluido el comercial Clean, intuitive API that makes OpenXML SDK bearable Desarrollo activo con lanzamientos regulares y mantenedores responsivos Good pivot table support and conditional formatting Large community: 60M+ NuGet downloads Limitations: Solo XLSX, sin soporte para los formatos XLS legacy No hay creación de gráficos (una característica frecuentemente solicitada, aún no implementada) Performance degrades with very large datasets (100K+ rows can be slow or memory-intensive) No commercial support, community-only via GitHub Issues Open-source projects, budget-constrained teams, and any scenario where MIT licensing is a requirement. Excellent for small-to-medium datasets where chart generation isn't needed. Best for: 4. NPOI — The Java Port That Refuses to Die is the .NET port of , the Java Excel library. It's one of the few free libraries that supports both XLS (BIFF) and XLSX (OOXML) formats. Apache 2.0 licensed. The API reflects its Java heritage, it's more verbose than C#-native alternatives, but it's battle-tested and handles legacy formats that newer libraries can't touch. NPOI Apache POI using NPOI.XSSF.UserModel; using NPOI.SS.UserModel; IWorkbook wb = new XSSFWorkbook(); ISheet ws = wb.CreateSheet("Sales"); IRow headerRow = ws.CreateRow(0); headerRow.CreateCell(0).SetCellValue("Product"); headerRow.CreateCell(1).SetCellValue("Revenue"); headerRow.CreateCell(2).SetCellValue("Date"); IRow dataRow = ws.CreateRow(1); dataRow.CreateCell(0).SetCellValue("Widget"); dataRow.CreateCell(1).SetCellValue(14999.99); dataRow.CreateCell(2).SetCellValue(DateTime.Now.ToShortDateString()); using var fs = new FileStream("sales_npoi.xlsx", FileMode.Create); wb.Write(fs); Después de la salida NPOI requires explicit row and cell creation via CreateRow() and CreateCell(), there's no string-based cell addressing. For XLS files, swap XSSFWorkbook with HSSFWorkbook. The interface-driven design (IWorkbook, ISheet, IRow) means the same code logic can target either format by changing a single constructor. Strengths: Apache 2.0 license, free for commercial use Supports both XLS (97-2003) and XLSX, one of few free libraries that handles legacy XLS Soporte para la creación de gráficos (básico) Gestiona Word (.doc/.docx) y PowerPoint además de documentos de Excel Probablemente a escala empresarial – portado desde el POI de Apache con décadas de herencia de Java Limitations: Verbose, Java-style API, significantly more boilerplate than C#-native alternatives El rendimiento es generalmente más lento que EPPlus, ClosedXML o IronXL para operaciones equivalentes La documentación es escasa y a menudo en chino — los recursos en inglés son contribuidos por la comunidad Las API pueden ser poco intuitivas para desarrolladores que no están familiarizados con el POI de Apache Projects that read or write legacy XLS files without a commercial license. Also suitable when you need a single library for Excel + Word + PowerPoint on a zero budget. Best for: debe 5. Aspose.Cells — The Enterprise Heavyweight es la biblioteca de .NET Excel más rica en características disponible. Soporta prácticamente todas las funciones de Excel: gráficos, tablas pivot, formatación condicional, validación de datos, sparklines, cortadores, macros VBA y más. También es la opción más cara. Aspose la coloca como una plataforma de automatización completa de Excel, no sólo una biblioteca de archivos I/O. Aspose.Cells using Aspose.Cells; Workbook wb = new Workbook(); Worksheet ws = wb.Worksheets[0]; ws.Cells["A1"].PutValue("Product"); ws.Cells["B1"].PutValue("Revenue"); ws.Cells["C1"].PutValue("Date"); ws.Cells["A2"].PutValue("Widget"); ws.Cells["B2"].PutValue(14999.99); ws.Cells["C2"].PutValue(DateTime.Now); Style style = wb.CreateStyle(); style.Number = 7; // $#,##0.00 ws.Cells["B2"].SetStyle(style); wb.Save("sales_aspose.xlsx"); Aspose.Cells Output Aspose.Cells uses a Workbook → Worksheets → Cells hierarchy. Data is written with PutValue() rather than direct assignment. Styling requires creating a Style object and applying it, more steps than some competitors, but it provides granular control over every formatting property. Strengths: La característica más completa establecida en el ecosistema .NET Excel, si Excel puede hacerlo, Aspose.Cells probablemente lo soporta Excelente rendimiento en archivos grandes, optimizado para el procesamiento de lotes a escala empresarial Soporte extensivo de formatos: XLSX, XLS, XLSB, XLSM, CSV, ODS, PDF, HTML, imágenes Excel-to-PDF renderizado que está entre los más fieles disponibles Strong documentation, extensive code samples, and dedicated support team Limitations: Punto de precio más alto: Desarrollador Pequeño Negocio comienza en $ 1.199/año; los niveles de OEM alcanzan $ 11.198 API es verbosa en lugares, la creación y aplicación de estilos es más ceremonial que IronXL o ClosedXML The massive API surface can be overwhelming for simple tasks Dependencia pesada, el paquete NuGet es grande Enterprise teams with budget for premium tooling, projects requiring advanced features (charts, pivots, sparklines, VBA), and workflows needing high-fidelity . Best for: Conversión Excel-to-PDF Syncfusion XlsIO - El juego de la suite es parte de la enorme suite Essential Studio de Syncfusion. Ofrece una amplia cobertura de características de Excel y beneficios del ecosistema de control de interfaz de usuario de Syncfusion. La licencia comunitaria gratuita (para empresas con ingresos inferiores a 1 millón de dólares, ≤ 5 desarrolladores) la hace accesible a pequeños equipos. Introducción a Syncfusion Essential XlsIO using Syncfusion.XlsIO; using ExcelEngine excelEngine = new ExcelEngine(); IApplication app = excelEngine.Excel; app.DefaultVersion = ExcelVersion.Xlsx; IWorkbook wb = app.Workbooks.Create(1); IWorksheet ws = wb.Worksheets[0]; ws.Range["A1"].Text = "Product"; ws.Range["B1"].Text = "Revenue"; ws.Range["C1"].Text = "Date"; ws.Range["A2"].Text = "Widget"; ws.Range["B2"].Number = 14999.99; ws.Range["C2"].DateTime = DateTime.Now; ws.Range["B2"].NumberFormat = "$#,##0.00"; wb.SaveAs("sales_syncfusion.xlsx"); Resultados de Syncfusion XlsIO Syncfusion utiliza una jerarquía de ExcelEngine → IApplication → IWorkbook que refleja el modelo de objeto COM de Excel. El acceso celular se realiza a través de Range[] con propiedades tipificadas separadas (Text, Número, DateTime). Strengths: Rico en características: Utilice fuentes de datos para crear gráficos, tablas pivot, formatación condicional, validación de datos, marcadores de plantillas, sparklines Free Community License for small companies, a genuine differentiator Excel-to-PDF conversion included Deep integration with Syncfusion's Blazor, MAUI, and WPF UI controls Active development with quarterly releases; cross-platform (Windows, Linux, macOS, Docker) Limitations: La Licencia Comunitaria tiene requisitos de elegibilidad estrictos, las empresas con ingresos superiores a 1 millón de dólares deben comprar Full Suite pricing is complex and can be expensive ($995/dev/year for Essential Studio) Library is part of a massive suite, you're pulling in more dependencies than needed for Excel-only work Vendor lock-in concern: deep Syncfusion ecosystem integration can make migration difficult Teams already using Syncfusion's UI controls, startups qualifying for the free Community License, and projects needing tight integration between Excel processing and Blazor/MAUI front ends. Best for: 7. - El nivel medio focalizado en el rendimiento GemBox.Spreadsheet es un componente .NET con licencia comercial con un nivel gratuito convincente (150 líneas, 5 hojas). Admite altas cifras de rendimiento - la compañía afirma 1 millón de líneas en menos de 3,5 segundos con menos de 256 MB de RAM - y soporta una gama inusual de formatos de salida, incluyendo PDF, XPS y renderización de imagen. . GemBox.Spreadsheet Ficha general Nuevas using GemBox.Spreadsheet; SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY"); var wb = new ExcelFile(); var ws = wb.Worksheets.Add("Sales"); ws.Cells["A1"].Value = "Product"; ws.Cells["B1"].Value = "Revenue"; ws.Cells["C1"].Value = "Date"; ws.Cells["A2"].Value = "Widget"; ws.Cells["B2"].Value = 14999.99; ws.Cells["C2"].Value = DateTime.Now; ws.Cells["B2"].Style.NumberFormat = "$#,##0.00"; wb.Save("sales_gembox.xlsx"); GemBox.Spreadsheet Producción GemBox uses ExcelFile → Worksheets → Cells with string-based addressing. The API is clean and similar to ClosedXML's pattern. The free tier key (FREE-LIMITED-KEY) enables evaluation without watermarks — just with row limits. Strengths: Strong claimed performance on large datasets (1M rows, <256MB, <3.5s) PDF, XPS y exportación de imagen incorporada — no se necesita una biblioteca separada Gráficos, tablas pivot, formato condicional y soporte para la validación de datos Nivel gratuito para pequeños conjuntos de datos (útil para el prototipo) Clean, idiomatic C# API Limitations: Free tier limited to 150 rows and 5 sheets — too restrictive for most real applications Smaller community than EPPlus, ClosedXML, or NPOI — fewer Stack Overflow answers La licencia profesional comienza en ~$890 (una vez) - competitivo pero no barato Less name recognition — harder to get team buy-in compared to established alternatives Performance-sensitive applications processing large files, projects needing built-in PDF/image export from Excel, and teams that value one-time licensing over subscriptions. Best for: OpenXML SDK - La capa de fundación provides low-level access to Es lo que ClosedXML y muchas otras bibliotecas están construidas sobre. licenciado por MIT, mantenido por Microsoft, y le da un control directo sobre la estructura XML de los archivos .xlsx. Desarrollo de Microsoft Open XML SDK Documentos XML abiertos using DocumentFormat.OpenXml; using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Spreadsheet; using var doc = SpreadsheetDocument.Create("sales_openxml.xlsx", SpreadsheetDocumentType.Workbook); var workbookPart = doc.AddWorkbookPart(); workbookPart.Workbook = new Workbook(); var worksheetPart = workbookPart.AddNewPart<WorksheetPart>(); worksheetPart.Worksheet = new Worksheet(new SheetData()); var sheets = workbookPart.Workbook.AppendChild(new Sheets()); sheets.Append(new Sheet { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Sales" }); var sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>(); var row = new Row { RowIndex = 1 }; row.Append(new Cell { CellReference = "A1", DataType = CellValues.String, CellValue = new CellValue("Product") }); row.Append(new Cell { CellReference = "B1", DataType = CellValues.String, CellValue = new CellValue("Revenue") }); sheetData.Append(row); workbookPart.Workbook.Save(); OpenXML Output Let's be direct: that's a lot of code just to write two cells. OpenXML SDK requires you to manually construct the XML document structure, workbook parts, worksheet parts, sheet data, rows, cells, cell references, data types. There's no worksheet["A1"] = value convenience. Strengths: MIT licenciado, mantenido por Microsoft, como "oficial" como se obtiene Maximum control over document structure, nothing is abstracted away Eficiencia de memoria para la transmisión de escritos (acercamiento de estilo SAX disponible) 100M+ NuGet downloads, the foundational layer many other libraries depend on No third-party risk, it's from Microsoft themselves Limitations: Extremadamente verbosa, las tareas simples requieren de 5 a 10 veces más código que cualquier biblioteca de nivel superior No formula calculation engine, formulas are stored as strings, not evaluated No hay soporte XLS, sólo OOXML (.xlsx) No convenient cell addressing, formatting shortcuts, or data binding helpers Curva de aprendizaje rígida, necesita comprender la especificación OOXML Library authors building their own Excel abstraction, scenarios requiring absolute control over document structure, and teams with strict "no third-party dependencies" policies who can absorb the development cost. Best for: ExcelDataReader – El especialista en lectura sólo ligera does one thing and does it well: reading Excel files. It supports XLS, XLSX, and CSV through a streaming IDataReader interface that's memory-efficient for large files. MIT-licensed. If you only need to Las tablas, esta debe ser su primera consideración. ExcelDataReader Leer using ExcelDataReader; using System.Data; // Required for .NET Core System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); using var stream = File.Open("sales_data.xlsx", FileMode.Open, FileAccess.Read); using var reader = ExcelReaderFactory.CreateReader(stream); DataSet result = reader.AsDataSet(new ExcelDataSetConfiguration { ConfigureDataTable = _ => new ExcelDataTableConfiguration { UseHeaderRow = true } }); DataTable table = result.Tables[0]; foreach (DataRow row in table.Rows) { Console.WriteLine($"{row["Product"]}: {row["Revenue"]}"); } ExcelDataReader Reading Output ExcelDataReader devuelve datos a través de las conocidas interfaces System.Data: IDataReader para streaming y DataSet/DataTable para resultados materializados. La configuración UseHeaderRow = verdadera promueve la primera fila a los nombres de columnas. Strengths: MIT license — free for everything Peso ligero: paquete pequeño NuGet, dependencias mínimas Streaming Reader - Memoria eficiente para archivos grandes Supports both XLS and XLSX plus CSV DataTable integration makes it easy to pipe data into databases or other systems 70M+ NuGet downloads — proven reliability Limitations: — cannot create or modify Excel files Read-only No formatting, styling, charts, or formula evaluation No hay dirección de celda: el acceso a los datos se basa sólo en la fila/columna Requires manual encoding provider registration on .NET Core Pipelines ETL, flujos de trabajo de importación de datos, herramientas de migración y cualquier escenario en el que necesite Excel data quickly and cheaply without ever writing back to a spreadsheet. Best for: read 10. — The eIceBlue Contender Spire.XLS by eIceBlue is a commercial Excel component with a free version limited to 200 rows and 5 sheets. The commercial version supports the full range of Excel features including charts, pivot tables, and Excel-to-PDF conversion. eIceBlue also offers Word, PDF, and PowerPoint libraries in their Spire.Office bundle. Spire.XLS para .NET using Spire.Xls; Workbook wb = new Workbook(); Worksheet ws = wb.Worksheets[0]; ws.Name = "Sales"; ws.Range["A1"].Text = "Product"; ws.Range["B1"].Text = "Revenue"; ws.Range["C1"].Text = "Date"; ws.Range["A2"].Text = "Widget"; ws.Range["B2"].NumberValue = 14999.99; ws.Range["C2"].DateTimeValue = DateTime.Now; ws.Range["B2"].NumberFormat = "$#,##0.00"; wb.SaveToFile("sales_spire.xlsx", ExcelVersion.Version2016); Desarrollo de Spire.XLS Spire.XLS follows a pattern similar to Syncfusion, Workbook → Worksheet → Range with typed value properties. The SaveToFile method requires specifying the target Excel version explicitly. Strengths: Comprehensive feature set: charts, pivots, conditional formatting, encryption, digital signatures Conversión de Excel a PDF y de Excel a imagen Versión gratuita disponible (200 filas, 5 hojas), más generoso que el nivel gratuito de GemBox para el recuento de filas Supports XLS and XLSX Parte de la suite Spire.Office más amplia Limitations: Free version's 200-row limit is too restrictive for most production use Los precios comerciales comienzan en ~999$/desarrollador, en el extremo superior Smaller .NET community presence compared to Aspose or Syncfusion La calidad de la documentación es inconsistente, algunas áreas de API están mal documentadas Java heritage shows in some API patterns Equipos que evalúan alternativas comerciales a Aspose.Cells a un precio diferente, y proyectos que ya utilizan otros componentes de Spire.Office. Best for: 11. SpreadsheetLight — The Minimalist es una biblioteca licenciada por el MIT construida sobre el SDK de OpenXML. Su objetivo es ser la opción "simple" - fácil de aprender, ligera y suficiente para tareas comunes de hoja de cálculo. SpreadsheetLight using SpreadsheetLight; using var doc = new SLDocument(); doc.SetCellValue("A1", "Product"); doc.SetCellValue("B1", "Revenue"); doc.SetCellValue("C1", "Date"); doc.SetCellValue("A2", "Widget"); doc.SetCellValue("B2", 14999.99); doc.SetCellValue("C2", DateTime.Now.ToShortDateString()); doc.SaveAs("sales_spreadsheetlight.xlsx"); SpreadsheetLight uses a single SLDocument class as the entry point. The SetCellValue method is overloaded for different types. It's arguably the simplest API in this comparison — but simplicity comes at a cost. Strengths: Licenciado, verdaderamente libre Extremely simple API, lowest learning curve in this roundup Peso ligero, dependencias mínimas (sólo OpenXML SDK) Basic chart support (more than ClosedXML offers) Good enough for simple reporting and data export tasks Limitations: Aparece sin mantenimiento, actualizaciones poco frecuentes, la última actividad importante fue hace años .NET Framework focused, .NET Core/.NET 8+ compatibility is uncertain Solo XLSX, sin soporte XLS Limited feature set compared to active alternatives Comunidad pequeña, recursos limitados de cobertura de Stack Overflow y solución de problemas Simple, one-off spreadsheet generation tasks in .NET Framework projects where you need something lightweight and free. For this use case, ClosedXML might actually be the better choice given its active maintenance. Best for: 12. SpreadsheetGear — The Enterprise Veteran ha estado en el espacio .NET Excel durante más de una década. Se posiciona como el motor de cálculo de alto rendimiento, compatible con Excel para aplicaciones empresariales. La biblioteca incluye gráficos, un motor de fórmulas con más de 450 funciones y controles de hoja de cálculo WinForms/WPF para construir UIs interactivos similares a Excel. El SpreadsheetGear using SpreadsheetGear; IWorkbook wb = Factory.GetWorkbook(); IWorksheet ws = wb.Worksheets["Sheet1"]; IRange cells = ws.Cells; cells["A1"].Value = "Product"; cells["B1"].Value = "Revenue"; cells["C1"].Value = "Date"; cells["A2"].Value = "Widget"; cells["B2"].Value = 14999.99; cells["C2"].Value = DateTime.Now; cells["B2"].NumberFormat = "$#,##0.00"; wb.SaveAs("sales_spreadsheetgear.xlsx", FileFormat.OpenXMLWorkbook); SpreadsheetGear Output La API de SpreadsheetGear refleja de cerca el modelo de objeto Excel VBA, los desarrolladores que han escrito macros de Excel se sentirán inmediatamente en casa. El patrón Factory.GetWorkbook() y la interfaz IRange siguen estrechamente las convenciones de Excel. Strengths: Más de 450 funciones integradas, uno de los motores de fórmulas más completos de cualquier biblioteca .NET High-performance calculations optimized for financial modeling scenarios WinForms y controles de interfaz de la hoja de cálculo de WPF para crear interfaces interactivas similares a Excel Excel excelente compatibilidad, tiene como objetivo un rendimiento de píxeles perfecto Longo historial, prueba de producción en entornos empresariales Limitations: Precio más alto (~ $ 975 / desarrollador) con precios menos visibles, debe contactar con las ventas Comunidad de desarrolladores más pequeña que EPPlus, ClosedXML o NPOI Less modern API feel compared to newer entrants Presencia limitada en las plataformas comunitarias modernas (HackerNoon, Dev.to, etc.) No hay ediciones gratuitas ni ediciones comunitarias Aplicaciones financieras que requieren un potente motor de cálculo, aplicaciones de escritorio que requieren controles de interfaz de la hoja de cálculo incorporados y entornos empresariales donde la migración de Excel VBA es el caso de uso. Best for: Presentación de características: ¿Qué puede hacer cada biblioteca realmente? Beyond the basics of reading and writing cells, Excel libraries differ dramatically in their advanced feature support. Here's what we found when we tested features that matter in production applications. Formato de archivo de soporte Library XLSX XLS XLSB XLSM CSV TSV JSON ODS PDF Export IronXL ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ❌ EPPlus ✅ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ ClosedXML ✅ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ NPOI ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ Aspose.Cells ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ Syncfusion ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ GemBox ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅ ✅ OpenXML SDK ✅ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ExcelDataReader ✅ ✅ ❌ ❌ ✅ ❌ ❌ ❌ ❌ Spire.XLS ✅ ✅ ✅ ✅ ✅ ❌ ❌ ✅ ✅ SpreadsheetLight ✅ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ SpreadsheetGear ✅ ✅ ❌ ❌ ✅ ❌ ❌ ❌ ✅ Irónico ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ❌ EPPlus ✅ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ CierraXML ✅ ❌ ❌ ✅ ✅ ❌ ❌ ❌ ❌ NPOI ✅ ✅ ❌ ❌ ❌ ❌ ❌ ❌ ❌ Células - Células ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ Sinfusión ✅ ✅ ❌ ✅ ✅ ✅ ✅ ❌ ✅ El gembox ✅ ✅ ✅ ✅ ✅ ✅ ❌ ✅ ✅ OpenXML SDK ✅ ❌ ❌ ✅ ❌ ❌ ❌ ❌ ❌ ExcelDataReader ✅ ✅ ❌ ❌ ✅ ❌ ❌ ❌ ❌ Especificaciones.xls ✅ ✅ ✅ ✅ ✅ ❌ ❌ ✅ ✅ SpreadsheetLuz ✅ ❌ ❌ ❌ ✅ ❌ ❌ ❌ ❌ SpreadsheetGear ✅ ✅ ❌ ❌ ✅ ❌ ❌ ❌ ✅ La brecha de soporte de formato es significativa. Si necesita for free, NPOI is your only real option. If you need , you're looking at Aspose.Cells, Syncfusion, GemBox, Spire.XLS, or SpreadsheetGear, all commercial. IronXL's strength here is the unified API for XLSX + XLS + CSV + TSV + JSON, a practical combination for data pipeline work. XLS legacy support PDF export from Excel Charts, Pivot Tables & Advanced Features Library Charts Pivot Tables Cond. Formatting Data Validation Images Formula Engine IronXL ❌ ❌ ✅ ✅ ✅ ✅ (auto-recalc) EPPlus ✅ ✅ ✅ ✅ ✅ ✅ ClosedXML ❌ ✅ ✅ ✅ ✅ ✅ NPOI ✅ (basic) ❌ ✅ ✅ ✅ ✅ Aspose.Cells ✅ ✅ ✅ ✅ ✅ ✅ Syncfusion ✅ ✅ ✅ ✅ ✅ ✅ GemBox ✅ ✅ ✅ ✅ ✅ ✅ OpenXML SDK ✅ (manual XML) ✅ (manual XML) ✅ (manual XML) ✅ (manual XML) ✅ ❌ ExcelDataReader ❌ ❌ ❌ ❌ ❌ ❌ Spire.XLS ✅ ✅ ✅ ✅ ✅ ✅ SpreadsheetLight ✅ (basic) ❌ ✅ ✅ ✅ ✅ SpreadsheetGear ✅ ❌ ✅ ✅ ✅ ✅ (450+ functions) IronXL ❌ ❌ ✅ ✅ ✅ ✅ (Auto Recalc) EPPlus ✅ ✅ ✅ ✅ ✅ ✅ CierraXML ❌ ✅ ✅ ✅ ✅ ✅ Después ✅ (básico) ❌ ✅ ✅ ✅ ✅ Células - Células ✅ ✅ ✅ ✅ ✅ ✅ Sinfusión ✅ ✅ ✅ ✅ ✅ ✅ El gembox ✅ ✅ ✅ ✅ ✅ ✅ OpenXML SDK ✅ (manual XML) ✅ (manual XML) ✅ (Manual XML) ✅ (manual XML) ✅ ❌ ExcelDataReader ❌ ❌ ❌ ❌ ❌ ❌ Especificaciones.xls ✅ ✅ ✅ ✅ ✅ ✅ SpreadsheetLuz ✅ (básico) ❌ ✅ ✅ ✅ ✅ SpreadsheetGear ✅ ❌ ✅ ✅ ✅ ✅ (450+ funciones) The tradeoff here is clear. If you need , you need EPPlus, Aspose.Cells, Syncfusion, GemBox, or Spire.XLS. IronXL and ClosedXML both lack chart creation — an honest limitation worth acknowledging. For read/write data work without charts, both offer cleaner APIs than the chart-capable alternatives. chart and pivot table creation Desempeño: resultados de referencia en las operaciones del mundo real Performance claims without methodology are marketing. Here's how we structured our tests, and the results will probably surprise you. Metodología Hemos ejecutado una suite de referencias estandarizadas en 15 bibliotecas (nuestro núcleo 12 más , de , and as bonus contenders). Rather than a single synthetic task, we tested four real-world operations that mirror what developers actually build with Excel libraries: SpreadCheetah MiniExcel Rápido Generación de informes financieros: Crear un libro de trabajo de declaraciones de 12 meses con fórmulas y formatación Seguimiento de inventario: Construye una hoja de cálculo de seguimiento de 500 elementos, de 3 almacenes con referencias cruzadas : Process and write 10,000 transactions with aggregation Sales Data Analysis Procesamiento de los salarios de los empleados: Generar un libro de trabajo de los salarios de 250 empleados con campos calculados Cada prueba midió el tiempo de ejecución del reloj de pared (ms) y la memoria de pico (MB). Las pruebas se ejecutaron en .NET 8 con múltiples iteraciones; informamos de los valores registrados a partir de nuestra herramienta de referencia. Sólo se reportan pruebas que terminaron con éxito, las bibliotecas que fallaron en una operación dada se excluyen de esa tabla en lugar de ser penalizadas. Presentación de informes financieros (12 meses) Rank Library Time (ms) Memory (MB) 1 SpreadCheetah 2.9 0.2 2 DevExpress 53.2 4.5 3 Aspose.Cells 55.5 0.25 4 Spire.XLS 80.3 1.2 5 OfficeIMO 257.6 2.1 6 IronXL 498.1 4.2 1 SpreadCheetah 2.9 0.2 2 DevExpress 53.2 4.5 3 Aspose.Cells 55.5 0.25 4 Especificaciones.xls 80.3 1.2 5 Oficina 257.6 2.1 6 IronXL 498.1 4.2 SpreadCheetah's 2.9ms is striking, it's a write-only, forward-only streaming library designed explicitly for maximum throughput. It sacrifices API convenience (no random cell access, no reading) for raw speed. For pure report generation where you know the output structure upfront, it's essentially unbeatable. Aspose.Cells and DevExpress cluster closely in the 53-56ms range, representing the top tier among full-featured libraries. IronXL trails here at 498ms. For a one-off monthly report, that's imperceptible to the end user. For a batch job generating thousands of reports, it becomes a consideration, and SpreadCheetah or Aspose.Cells would be the better choice for that specific workload. Inventory Tracking (500 Items, 3 Warehouses) Rank Library Time (ms) Memory (MB) 1 EPPlus 51.2 2.9 2 ExcelMapper 54.1 4.9 3 SpreadCheetah 56.3 2.1 4 Aspose.Cells 136.5 2.4 5 Spire.XLS 183.2 1.4 6 DevExpress 451.7 5.0 7 IronXL 1,344.5 18.7 8 OfficeIMO 16,659.5 14.4 1 EPPLUS 51.2 2.9 2 ExcelMapper 54.1 4.9 3 SpreadCheetah 56.3 2.1 4 Células - Células 136.5 2.4 5 Especificaciones.xls 183.2 1.4 6 DevExpress 451.7 5.0 7 IronXL 1,344.5 18.7 8 Oficina 16,659 millones 14.4 EPPlus domina esta operación de mediana complejidad, seguida de cerca por SpreadCheetah y ExcelMapper. Los números de memoria cuentan una historia importante: Spire.XLS logra una velocidad competitiva a sólo 1.4MB, el resultado más eficiente en memoria para esta prueba. La huella de 18,7MB de IronXL en el rango 7 refleja su arquitectura basada en DOM cargando el modelo completo de documento en memoria. Sales Data Analysis (10,000 Transactions) This is the heaviest test, 10,000 rows with aggregation. It separates libraries built for scale from those optimized for convenience. Rank Library Time (ms) Memory (MB) 1 CsvHelper 140.3 9.3 2 ClosedXML 262.5 16.4 3 SpreadCheetah 289.7 15.9 4 FastExcel 346.7 13.8 5 MiniExcel 638.3 17.7 6 EPPlus 671.0 21.3 7 Aspose.Cells 696.5 15.3 8 NPOI 1,930.4 35.0 9 Spire.XLS 2,015.5 26.8 10 DevExpress 4,860.6 25.0 11 IronXL 11,322.9 80.9 1 CsvHelper 140.3 9.3 2 ClosedXML 262.5 16.4 3 SpreadCheetah 289.7 15.9 4 Rápido 346.7 13.8 5 MiniExcel 638.3 17.7 6 EPPlus 671.0 21.3 7 Células - Células 696.5 15.3 8 Después 1.930 millones 35.0 9 Especificaciones.xls 2 015 5 26.8 10 DevExpress 4 860 6 25.0 11 IronXL 11,322.9 80.9 Sea honesto: IronXL termina por último en esta prueba, y la brecha es significativa. A 11.3 segundos y 80.9MB, es 80x más lento que CsvHelper y 43x más lento que ClosedXML. CsvHelper gana porque es un analizador de CSV construido para fines específicos —no una biblioteca completa de Excel— y evita la sobrecarga de la construcción de documentos OOXML por completo. La implicación práctica: si está construyendo una tubería de datos que procesa más de 10.000 conjuntos de datos de transacciones repetidamente, IronXL no es la herramienta adecuada para ese trabajo específico. EPPlus, ClosedXML, o una biblioteca de streaming como SpreadCheetah le servirá de forma dramática mejor. Procesamiento de los salarios de los empleados (250 empleados) Sólo tres bibliotecas completaron con éxito esta compleja operación de varias hojas: Rank Library Time (ms) Memory (MB) 1 Aspose.Cells 404.0 3.8 2 IronXL 2,893.0 12.5 3 Spire.XLS 4,323.0 N/A* 1 Células - Células 404.0 3.8 2 IronXL 2,893.0 12.5 3 Especificaciones.xls 4,323.0 N/A * Spire.XLS reportó medición de memoria negativa - probablemente un artefacto de medición. La mayoría de las bibliotecas no han intentado esta prueba o no la han completado.El hecho de que sólo tres bibliotecas hayan tenido éxito habla de la complejidad de los libros de trabajo de fórmula pesada con campos calculados. Aspose.Cells lidera convincentemente. IronXL termina segundo, más lento, pero completó la operación con éxito y produjo la salida correcta, que la mayoría de los competidores no podían manejar. Lo que nos dicen los benchmarks (y lo que no dicen) Three patterns emerge from this data. First, . SpreadCheetah appears in the top 3 across every test it entered, but it can't read files, can't do random cell access, and can't apply complex formatting after writing. If speed is your primary concern and you're generating known report structures, it's worth adding to your evaluation list. Second, Aspose.Cells, EPPlus, y Spire.XLS generalmente negocia posiciones dependiendo del tipo de operación. Su arquitectura basada en DOM y las abstracciones de API de alto nivel introducen el overhead que aparece a escala, el tradeoff para esa API limpia de 3 líneas que vio en la introducción. streaming/write-only libraries dominate speed benchmarks full-featured commercial libraries cluster together IronXL's performance profile favors simplicity over speed En la práctica, la mayoría de las aplicaciones empresariales procesan bien menos de 10.000 líneas.Un informe mensual de ventas con 500 líneas, una exportación trimestral con 2.000 transacciones, una instantánea de inventario con unos pocos cientos de SKU, estas cargas de trabajo se ejecutan cómodamente en cualquier biblioteca en esta comparación, IronXL incluido.Las diferencias de rendimiento se vuelven decisivas sólo a escala, y incluso entonces, la respuesta correcta es a menudo elegir la herramienta correcta para cada trabajo específico en lugar de forzar a una única biblioteca a manejar todo. Soporte Cross-Platform: ¿Se ejecutará en Linux, Docker y Cloud? Si su aplicación se implementa en contenedores Docker, Azure App Service en Linux o AWS Lambda, su biblioteca de Excel debe funcionar sin dependencias específicas de Windows. Library Windows Linux macOS Docker Azure App Svc AWS Lambda Blazor WASM IronXL ✅ ✅ ✅ ✅ ✅ ✅ ❌ EPPlus ✅ ✅ ✅ ✅ ✅ ✅ ❌ ClosedXML ✅ ✅ ✅ ✅ ✅ ✅ ❌ NPOI ✅ ✅ ✅ ✅ ✅ ✅ ❌ Aspose.Cells ✅ ✅ ✅ ✅ ✅ ✅ ❌ Syncfusion ✅ ✅ ✅ ✅ ✅ ✅ ✅ (server) GemBox ✅ ✅ ✅ ✅ ✅ ✅ ❌ OpenXML SDK ✅ ✅ ✅ ✅ ✅ ✅ ✅ ExcelDataReader ✅ ✅ ✅ ✅ ✅ ✅ ❌ Spire.XLS ✅ ✅ ✅ ✅ ✅ ⚠️ ❌ SpreadsheetLight ✅ ⚠️ ⚠️ ⚠️ ⚠️ ❌ ❌ SpreadsheetGear ✅ ✅ ✅ ✅ ✅ ✅ ❌ Irónico ✅ ✅ ✅ ✅ ✅ ✅ ❌ EPPLUS ✅ ✅ ✅ ✅ ✅ ✅ ❌ ClosedXML ✅ ✅ ✅ ✅ ✅ ✅ ❌ NPOI ✅ ✅ ✅ ✅ ✅ ✅ ❌ Aspose.Cells ✅ ✅ ✅ ✅ ✅ ✅ ❌ Sinfusión ✅ ✅ ✅ ✅ ✅ ✅ (Servicio de Servicio) El gembox ✅ ✅ ✅ ✅ ✅ ✅ ❌ Descargar OpenXML SDK ✅ ✅ ✅ ✅ ✅ ✅ ✅ ExcelDataReader ✅ ✅ ✅ ✅ ✅ ✅ ❌ Especificaciones.xls ✅ ✅ ✅ ✅ ✅ ☀️ ❌ SpreadsheetLuz ✅ ☀️ ⚠️ ☀️ ☀️ ❌ ❌ El SpreadsheetGear ✅ ✅ ✅ ✅ ✅ ✅ ❌ La buena noticia: la mayoría de las bibliotecas modernas y activamente mantenidas funcionan a través de plataformas en .NET 8+. SpreadsheetLight es el más externo, su enfoque en .NET Framework hace que la implementación a través de plataformas no sea fiable. (the rendering engine is too heavy), but server-side Blazor works fine with all of them. Cliente de lado Todas las bibliotecas que tienen como objetivo o .NET 6+ funciona en contenedores mínimos de Docker ( No se necesitan dependencias nativas del sistema operativo, a diferencia de las bibliotecas PDF, las bibliotecas de Excel son código gestionado puro. Docker consideration .NET estándar 2.0 mcr.microsoft.com/dotnet/tiempo de ejecución:8.0 Licenciamiento y precios: ¿Cuánto va a costar realmente a tu equipo? La concesión de licencias es donde las bibliotecas de Excel difieren drásticamente. Opciones de código abierto Library License Commercial Use Gotchas ClosedXML MIT ✅ Free No commercial support; community-only fixes NPOI Apache 2.0 ✅ Free Must include license notice; no commercial support OpenXML SDK MIT ✅ Free Microsoft-maintained, but no dedicated Excel support ExcelDataReader MIT ✅ Free Read-only; you'll need another library for writes SpreadsheetLight MIT ✅ Free Appears unmaintained; risk of unpatched bugs ClosedXML con Libre No hay soporte comercial; sólo fija la comunidad Después El Apache 2.0 Libre Debe incluir el aviso de licencia; sin soporte comercial Descargar OpenXML SDK con Libre Microsoft mantiene, pero no cuenta con soporte dedicado de Excel ExcelDataReader con ✅ Free Sólo para leer; necesitarás otra biblioteca para escribir SpreadsheetLuz con Libre Aparece sin mantenimiento; riesgo de errores no corregidos Las bibliotecas "gratuitas" cargan costes ocultos: no hay soporte respaldado por SLA, no hay horarios de fijación garantizados, y el tiempo de ingeniería que su equipo gasta para resolver problemas que un proveedor comercial trataría. Para proyectos de hobby y prototipos, estos costes son aceptables. Para sistemas empresariales de producción, factor en la tasa horaria de su equipo contra una tarifa de licencia comercial. y ambos permiten un uso comercial ilimitado, la distinción es en lo que proporciona frente a lo que un vendedor garantiza. con licencia Licencia Apache 2.0 Comunidad Opciones comerciales comparadas Library Entry Price Per-Dev Pricing Free Tier OEM/SaaS Extra Support Included IronXL $749/yr (Lite) $749–$2,999/yr 30-day trial Yes (add-on) ✅ 24/5 engineering EPPlus $299/yr (base) $299–$599/yr v4.5.3 (outdated) Yes (add-on) ✅ Email Aspose.Cells $1,199/yr $1,199–$11,198/yr Eval (watermark) Yes (expensive) ✅ Priority Syncfusion $0–$995/yr Per-suite Community License* Included in suite ✅ (paid tiers) GemBox ~$890 (one-time) Per-developer 150 rows free One-time ✅ 12 months Spire.XLS ~$999/dev Per-developer 200 rows/5 sheets Add-on ✅ Email SpreadsheetGear ~$975/dev Per-developer None Contact sales ✅ Email Irónico $749 / año (Mucho) $749–$2,999 por año 30 días de juicio Sí (en adición) 24 / 5 Ingeniería EPPLUS $299 / año (base) $299–$599 por año v4.5.3 (desactualizado en la actualidad) Sí (en adición) Este email Células - Células $1.199 por año $1.199–$11.198 por año Eval (marco de agua) Sí (es muy caro) Esta prioridad Sinfusión $0–$995 por año por seguimiento Licencia Comunitaria * Incluido en la suite ✅ (Tierras de pago) El gembox ~$890 (una sola vez) Desarrollador 150 rutas gratuitas Una vez 12 meses Especificaciones.xls $999 / Dólar Desarrollador 200 rows/5 sheets Adicionalmente ✅ Email El SpreadsheetGear ~ $975 / Dólar Per-developer Ninguno Contacto de Ventas Este email Licencia de la Comunidad de Syncfusion: gratuita para empresas con ingresos brutos anuales < $ 1M y ≤ 5 desarrolladores. merece una nota. EPPlus fue licenciado por el MIT a través de la versión 4.5.3 (2018). La versión 5 cambió a Polyform Noncommercial, y las versiones posteriores requieren una licencia comercial para cualquier uso comercial. Muchos proyectos legados todavía se refieren a 4.5.3, si es usted, sepa que está ejecutando una versión no mantenida con errores no corregidos. La migración a EPPlus 7+ requiere la compra de una licencia; la migración a ClosedXML o IronXL es un camino alternativo. The EPPlus licensing story El irónico Desde desarrolladores individuales ($749/yr Lite) hasta equipos y empresas. The Iron Suite – todos los 10 productos de Iron Software combinados – ofrece ahorros significativos si también necesita capacidades de PDF, OCR o código de barras. Cada licencia incluye una garantía de devolución de dinero de 30 días y soporte técnico directo. Licencias de terceros Compatibilidad .NET: De Framework a .NET 10 El ecosistema .NET se ha fragmentado en todas las versiones, y no todas las bibliotecas han mantenido el ritmo. Library .NET Framework 4.x .NET Core 3.1 .NET 6 .NET 8 (LTS) .NET 9 .NET 10 .NET Standard 2.0 IronXL ✅ ✅ ✅ ✅ ✅ ✅ ✅ EPPlus ✅ ✅ ✅ ✅ ✅ ✅ ✅ ClosedXML ✅ ✅ ✅ ✅ ✅ ✅ ✅ NPOI ✅ ✅ ✅ ✅ ✅ ✅ ✅ Aspose.Cells ✅ ✅ ✅ ✅ ✅ ✅ ✅ Syncfusion ✅ ✅ ✅ ✅ ✅ ✅ ✅ GemBox ✅ ✅ ✅ ✅ ✅ ✅ ✅ OpenXML SDK ✅ ✅ ✅ ✅ ✅ ✅ ✅ ExcelDataReader ✅ ✅ ✅ ✅ ✅ ✅ ✅ Spire.XLS ✅ ✅ ✅ ✅ ✅ ✅ ✅ SpreadsheetLight ✅ ⚠️ ⚠️ ⚠️ ❌ ❌ ❌ SpreadsheetGear ✅ ✅ ✅ ✅ ✅ ✅ ✅ Irónico ✅ ✅ ✅ ✅ ✅ ✅ ✅ EPPlus ✅ ✅ ✅ ✅ ✅ ✅ ✅ CierraXML ✅ ✅ ✅ ✅ ✅ ✅ ✅ Después ✅ ✅ ✅ ✅ ✅ ✅ ✅ Células - Células ✅ ✅ ✅ ✅ ✅ ✅ ✅ Sinfusión ✅ ✅ ✅ ✅ ✅ ✅ ✅ El gembox ✅ ✅ ✅ ✅ ✅ ✅ ✅ Descargar OpenXML SDK ✅ ✅ ✅ ✅ ✅ ✅ ✅ ExcelDataReader ✅ ✅ ✅ ✅ ✅ ✅ ✅ Especificaciones.xls ✅ ✅ ✅ ✅ ✅ ✅ ✅ SpreadsheetLuz ✅ ☀️ ☀️ ☀️ ❌ ❌ ❌ El SpreadsheetGear ✅ ✅ ✅ ✅ ✅ ✅ ✅ Todas las otras bibliotecas se dirigen a .NET Standard 2.0 (que cubre .NET Framework 4.6.1+ y todas las versiones .NET Core/.NET 5+) o proporcionan paquetes multi-target. Todas las 11 bibliotecas activamente mantenidas lo apoyan plenamente. For new projects in 2026, target . .NET 8 (en inglés LTS) .NET 8 (en inglés LTS) IronXL envía actualizaciones mensuales. EPPlus, Aspose.Cells y Syncfusion salen trimestralmente. ClosedXML y NPOI tienen lanzamientos irregulares pero frecuentes impulsados por la comunidad. SpreadsheetLight no ha tenido una actualización significativa en años, una bandera roja para la adopción a largo plazo. Release cadence as a longevity signal: Migración de Excel Interop - El punto de partida común Muchos equipos llegan a esta comparación porque están migrando lejos de Microsoft.Office.Interop.Excel. Si eso es usted, aquí está el playbook rápido.Interop requiere que Office esté instalado en cada máquina que ejecuta su código, incluidos los servidores. Esto era tolerable en un solo Windows Server, pero rompe el momento en que se containeriza, se escala horizontalmente o se implementa a Linux. El patrón de migración es sencillo, independientemente de la biblioteca que elija: // Step 1: Remove COM references // Delete: Microsoft.Office.Interop.Excel references from your .csproj // Step 2: Install replacement via NuGet // PM> Install-Package IronXL.Excel (or EPPlus, ClosedXML, etc.) // Step 3: Replace Interop patterns // Interop: xlApp.Workbooks.Add() → IronXL: WorkBook.Create() // Interop: ws.Cells[1,1] = value → IronXL: ws["A1"].Value = value // Interop: wb.SaveAs(path) → IronXL: wb.SaveAs(path) // Step 4: Remove COM cleanup code // Delete: Marshal.ReleaseComObject() calls — no longer needed La mayor ganancia no es sólo la implementación cross-platform, sino que elimina los dolores de cabeza de limpieza COM. No más procesos orfanatos EXCEL.EXE, no más Marshal.ReleaseComObject() llamadas, no más fugas de memoria de referencias COM no liberadas. Cada biblioteca en esta comparación gestiona sus propios recursos a través de patrones estándar .NET IDisposable. ¿Qué biblioteca de C# Excel es la adecuada para tu proyecto? Después de probar todas las 12 bibliotecas, aquí está nuestra guía honesta organizada por escenario.No vamos a fingir que IronXL es la mejor opción para cada situación, no lo es. Mejor para proyectos conscientes del presupuesto es el claro ganador para los equipos que necesitan capacidades de lectura y escritura completas con un presupuesto cero. licencia MIT, desarrollo activo, API intuitiva. El trato: no hay gráficos, y el rendimiento se degrada por encima de las 50K filas. es el runner-up, especialmente si necesita soporte XLS legacy. ClosedXML NPOI Best for Enterprise Applications o IronXL ofrece la API más limpia y un punto de precio más bajo cuando no se necesitan gráficos y pivotos, se destaca en el trabajo de tuberías de datos, la generación de informes y la conversión de formatos cruzados. Junto con IronPDF y IronOCR para su transformación digital. Aspose.Cells es la elección correcta cuando necesita cada característica de Excel bajo el sol y el presupuesto no es la restricción. IronXL Aspose.Cells Integración RuralCo IronXL Mejor para conjuntos de datos de alto rendimiento / grandes fue el destacado presentador en nuestros índices de referencia, consistentemente el top-3 en cada operación, con un asombroso 2,9ms para la generación de informes financieros. Es solo para escribir y sólo para adelante, pero si eso se ajusta a su caso de uso, nada más se acerca. y consistentemente colocado en el nivel superior. Para la ingestión de alto rendimiento solo de lectura, con su interfaz de transmisión IDataReader es incomparable. SpreadCheetah Aspose.Cells EPPlus ExcelDataReader Mejor guión solo para leer Es licenciado por MIT, ligero, rápido e integra nativamente con System.Data.DataTable. Si sólo necesita ingerir datos de hoja de cálculo, agregar una biblioteca completa de lectura/escritura es innecesario. ExcelDataReader Mejor para la máxima cobertura o Tanto soporta gráficos, tablas pivot, sparklines, formatación condicional, validación de datos, VBA y exportación de PDF. La Licencia de Comunidad gratuita de Syncfusion permite a los pequeños equipos acceder a las funciones de la empresa sin coste alguno. Aspose.Cells Syncfusion XlsIO Mejor experiencia para desarrolladores o Ofrecer las API más intuitivas con la menor cantidad de boilerplate. Ambos te permiten ir de Instalar-Package a un archivo Excel en funcionamiento en menos de 5 líneas de código. IronXL agrega soporte de formato cruzado (XLS + XLSX + CSV + JSON) y soporte profesional; ClosedXML agrega licencia MIT y una comunidad más grande. IronXL ClosedXML Lectura de archivos de Excel: la otra mitad de la ecuación La mayoría de las bibliotecas se centran en Aquí está cómo la experiencia de lectura se compara en cuatro bibliotecas populares, todas realizando la misma tarea: cargar un archivo Excel existente, iterar a través de líneas y extraer los datos tipificados. escribiendo // ExcelDataReader — streaming, read-only, lowest overhead using var stream = File.Open("report.xlsx", FileMode.Open, FileAccess.Read); using var reader = ExcelReaderFactory.CreateReader(stream); while (reader.Read()) { string product = reader.GetString(0); double revenue = reader.GetDouble(1); } // IronXL — concise cell-addressing syntax WorkBook wb = WorkBook.Load("report.xlsx"); WorkSheet ws = wb.DefaultWorkSheet; foreach (var row in ws.Rows.Skip(1)) // skip header { string product = row.Columns[0].StringValue; double revenue = row.Columns[1].DoubleValue; } // ClosedXML — similar pattern, IXLRow interface using var wb = new XLWorkbook("report.xlsx"); var ws = wb.Worksheet(1); foreach (var row in ws.RowsUsed().Skip(1)) { string product = row.Cell(1).GetString(); double revenue = row.Cell(2).GetDouble(); } // EPPlus — row/column indexed access using var package = new ExcelPackage(new FileInfo("report.xlsx")); var ws = package.Workbook.Worksheets[0]; for (int r = 2; r <= ws.Dimension.End.Row; r++) { string product = ws.Cells[r, 1].GetValue<string>(); double revenue = ws.Cells[r, 2].GetValue<double>(); } ExcelDataReader utiliza un patrón de IDataReader sólo para adelante, no se puede saltar a una celda específica ni ir hacia atrás. Es la opción más rápida y más ligera para las lecturas secuenciales. IronXL y ClosedXML ofrecen frontal sobre filas con acceso a la celda tipificada, aunque su sintaxis es diferente. EPPlus utiliza la dirección de fila/columna indexada por número entero, que es verbosa pero explícita. Todos los cuatro enfoques funcionan, la elección se reduce a si necesita acceso aleatorio (IronXL, ClosedXML, EPPlus) o simplemente streaming secuencial (ExcelDataReader). Etiquetas: Librerías que vale la pena visitar Nuestra prueba de referencia superó tres bibliotecas que no están en nuestro núcleo 12, pero merecen atención. es una biblioteca de transmisión solo de escritura que dominó nuestros parámetros de velocidad, 2.9ms para la generación de informes financieros, consistentemente en el top 3 en cada prueba.Si está generando estructuras de informes conocidas en alto volumen y no necesita leer o acceder aleatoriamente a las células, SpreadCheetah es una herramienta especializada que vale la pena evaluar. Distribución Distribución Se centra en las lecturas y las escrituras de baja memoria utilizando el streaming. Se ubica en el quinto lugar en el análisis de datos de ventas (638ms, 17.7MB), competitivo con EPPlus y Aspose.Cells. Su API es no convencional (uso pesado de tipos y diccionarios anónimos), pero está licenciado por el MIT y se mantiene activamente. MiniExcel MiniExcel es un lector/escritor XLSX ligero que ocupa el cuarto lugar en el análisis de datos de ventas (347ms, 13.8MB). Es menos conocido pero ofrece un rendimiento sólido para su huella mínima. Rápido Rápido Común Gotchas: Pitfalls Todos los desarrolladores Hits Después de trabajar con todas las 12 bibliotecas (y los tres concursantes de bonificación), hemos compilado los problemas que más a menudo se presentan a los desarrolladores. La trampa de codificación en .NET Core ExcelDataReader, NPOI y varias otras bibliotecas requieren que registre las páginas de código del proveedor de codificación antes de leer los archivos XLS (binarios) en .NET Core: // Add this ONCE at application startup — before any Excel operations System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); Sin esta línea, obtendrá una NotSupportedException sobre la codificación 1252. sólo afecta a XLS (no XLSX), sólo en .NET Core/.NET 5+, y el mensaje de error no apunta claramente a la solución. Actuaciones a través de las bibliotecas Excel almacena las fechas como números de puntos flotantes (días desde el 1 de enero de 1900). Cada biblioteca las convierte a DateTime de manera ligeramente diferente, y los casos de borde alrededor de los fusos horarios, el Nuestra recomendación: siempre valide las rondas de fechas (escribir → guardar → cargar de nuevo → leer) con su biblioteca específica antes de confiar en el manejo de la fecha en la producción. 1900 salto año bug Fugas de memoria de libros de trabajo no colocados Varias bibliotecas implementan IDisposable, ClosedXML, EPPlus, SpreadsheetLight y OpenXML SDK entre ellos. Olvidar de utilizar declaraciones puede causar fugas de memoria que solo superan bajo carga. IronXL, NPOI y Aspose.Cells manejan la limpieza de manera diferente (finalizadores o métodos explícitos Close()). El patrón más seguro en todas las bibliotecas: // Always wrap in using — even if the library doesn't strictly require it using var wb = /* load or create workbook */; // ... work with workbook ... // Disposal happens automatically at scope exit Requisitos del contexto de la licencia EPPlus EPPlus 5+ lanzará una LicenciaExcepción en la primera llamada de la API si no ha establecido el contexto de licencia. // Required before ANY EPPlus operations in v5+ ExcelPackage.License.SetNonCommercialOrganization("Org Name"); // or: ExcelPackage.License.SetLicenseKey("your-key"); OOM de archivos grandes en procesos de 32 bits Si su aplicación se ejecuta como un proceso de 32 bits (ver IntPtr.Size == 4), las bibliotecas basadas en DOM alcanzarán OutOfMemoryException mucho antes, a menudo alrededor de 20.000-30.000 líneas dependiendo del número de columnas. Esto afecta silenciosamente a las aplicaciones que se ejecutan bajo IIS con "Activar aplicaciones de 32 bits" configurado como verdadero, que es el estándar en muchos servidores legados. Qué hacer a continuación El ecosistema de bibliotecas .NET Excel es saludable, competitivo y evolucionando activamente. No hay una única biblioteca "mejor", solo la mejor biblioteca para su proyecto, su presupuesto y su objetivo de despliegue. tuya Nuestra recomendación: seleccione 2-3 candidatos de esta comparación, instale a través de NuGet y construya un pequeño prototipo contra sus datos reales.Los ejemplos de código de arriba le dan una tarea de inicio consistente para evaluar la ergonomía de la API de cabeza a cabeza. Presta atención a cómo cada biblioteca maneja casos de borde, células fusionadas, fórmulas, archivos grandes, requisitos de formatación específicos, porque ahí surgen las diferencias reales. tuya Para IronXL específicamente, el , de , y proporcionar muestras de trabajo que cubran los escenarios más comunes. a Permite probar la producción sin marcas de agua. Inicio Documentación Ejemplos de Código Tutoriales 30 días de prueba gratuita Actualizaremos esta comparación a medida que las bibliotecas lancen nuevas versiones: el ecosistema .NET se mueve rápidamente, y queremos que esto permanezca como el recurso que deseábamos tener. Los equipos que consideran es la mejor manera de evaluar si se ajusta a su flujo de trabajo real.Pruebe con sus propias hojas de cálculo, fórmulas, formatación y entorno de implementación para ver cómo funciona en la práctica antes de avanzar con una licencia de producción. IronXL, una prueba gratuita de 30 días Preguntas frecuentes Estas son las preguntas que más a menudo vemos de los desarrolladores que evalúan bibliotecas de C# Excel. Cada respuesta se basa en nuestra experiencia de prueba y producción. How do I create an Excel file in C# without Microsoft Office installed? Todas las bibliotecas en esta comparación excepto Microsoft.Office.Interop.Excel (que excluimos deliberadamente) funcionan sin Office. , de , de , etc. - y puede crear, leer y escribir archivos XLSX en máquinas sin instalar Office en absoluto, incluyendo servidores Linux y contenedores Docker. Paquete de instalación IronXL.Excel Instalación del paquete EPPlus Instalación del paquete ClosedXML Is EPPlus still free for commercial use? No. EPPlus versión 5 (lanzado en 2020) y posteriores requieren una licencia comercial para cualquier uso comercial. La última versión gratuita es 4.5.3, que no se mantiene y carece de años de correcciones de errores y parches de seguridad. Si necesita una alternativa gratuita con capacidades similares, ClosedXML (licencia MIT) es el camino de migración más directo. What's the fastest .NET Excel library for large datasets? En nuestros índices de referencia de escritura, GemBox.Spreadsheet y SpreadsheetGear lideraron consistentemente para 100K+ escritos en línea. Para la ingestión de archivos grandes solo de lectura, la interfaz de streaming IDataReader de ExcelDataReader es la opción más eficiente en memoria. OpenXML SDK ofrece el techo de memoria más bajo a través de su editor SAX, pero requiere significativamente más código. Which libraries support legacy XLS (97-2003) format? IronXL, NPOI, Aspose.Cells, GemBox.Spreadsheet, ExcelDataReader (sólo para lectura), Spire.XLS y SpreadsheetGear soportan el formato binario XLS. Entre las opciones gratuitas, NPOI es la única biblioteca que puede leer y escribir archivos XLS. Can these libraries run in Docker containers on Linux? Sí — todas las bibliotecas activamente mantenidas (11 de las 12, excepto SpreadsheetLight) se ejecutan en contenedores .NET 8 Docker estándar en Linux sin dependencias nativas. A diferencia de las bibliotecas de renderizado de PDF que a veces requieren fuentes del sistema o motores de navegador, las bibliotecas de Excel son código gestionado puro. Una imagen de base mínima de mcr.microsoft.com/dotnet/runtime:8.0 es suficiente. What's your experience? Which C# Excel library are you using in production, and what made you choose it? Drop your thoughts in the comments — we read every one.