Desde el punto de vista de la programación, la edición de un archivo de Excel puede ser difícil por dos razones principales. Los usuarios deben mantener una interfaz y una estructura de documentos consistentes, lo que no siempre es fácil de lograr cuando se trabaja con hojas de cálculo.
La otra razón es que no siempre está claro qué código funcionará en determinadas circunstancias, especialmente si se trata de cálculos complejos. Hay muchas razones diferentes por las que editar un archivo de Excel mediante programación es complejo. Los programadores tienen que convertir los datos del archivo de Excel a un formato utilizable; luego, tienen que analizar los datos y volver a analizarlos, lo cual no es tan sencillo.
Aquí vengo con una solución para este problema. Le mostraré cómo podemos leer y editar archivos de Excel mediante programación sin problemas utilizando diferentes bibliotecas de Excel. Empecemos:
IronXL es una biblioteca versátil y poderosa para abrir, editar, guardar archivos de Excel, leer y otras funcionalidades importantes de Excel. Es compatible con todas las plantillas de proyectos .NET como ASP.NET, aplicaciones de Windows y aplicaciones .NET Core. IronXL es muy fácil de usar en aplicaciones .NET para desarrolladores.
IronXL no necesita la instalación de Microsoft Office en una máquina local donde tenemos que usar la biblioteca IronXL. Y IronXL tampoco usa Excel Interop para operaciones de Excel. IronXL hace que trabajar con archivos de Excel en el entorno .NET sea muy fácil, rápido y sencillo.
IronXL facilita la realización de todas las operaciones y cálculos de Excel sin información de programación detallada.
IronXL permite a los desarrolladores realizar muchas operaciones especiales de Excel escribiendo unas pocas líneas de código como función de suma, filas múltiples, columnas totales, leyendo archivos de Excel, escribiendo archivos de Excel, modificando tablas de Excel, agregando columnas y filas, eliminando columnas y filas.
Echemos un vistazo a algunos ejemplos de código:
using IronXL; //Supported spreadsheet formats for reading include: XLSX, XLS, CSV and TSV WorkBook workbook = WorkBook.Load("data.xlsx"); WorkSheet sheet = workbook.WorkSheets.First(); //Select cells easily in Excel notation and return the calculated value, date, text or formula int cellValue = sheet["A2"].IntValue; // Read from Ranges of cells elegantly. foreach (var cell in sheet["A2:B10"]) { Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text); }
using IronXL; using System. Linq; WorkBook workbook = WorkBook.Load("test.xls"); WorkSheet sheet = workbook.WorkSheets.First(); var range = sheet["A2:A8"]; //This is how we can iterate over our range and read or edit any cell foreach (var cell in range) { Console.WriteLine(cell.Value); } // Another Example var oneMoreRange = sheet["A9:A10"]; //This is how we can combine our ranges into a single selection var resultRange = range + oneMoreRange; foreach (var cell in resultRange) { Console.WriteLine(cell.Value); }
Para saber más sobre el ejemplo de IronXL, haga clic aquí . IronXL es compatible con todos los principales sistemas operativos como Windows, Linux y macOS.
IronXL tiene tres planes de precios. El paquete básico comienza desde $ 499. Pero es gratis para fines de desarrollo. También ofrece 30 días de prueba gratis. Puedes ver más detalles en la imagen dada.
FastExcel es una biblioteca de Excel de C# que ayuda al usuario con la funcionalidad de lectura y escritura rápidas de las hojas de cálculo de Excel. Es una biblioteca de código abierto. Se necesita menos memoria mientras se ejecuta en segundo plano. No utiliza Open XML SDK para editar o interactuar con datos. Hace la edición de archivos XML por sí mismo. FastExcel solo requiere .NET Framework 4.5 o superior y .NET Core 2.0.
Proporciona funcionalidades básicas de Excel pero no funcionalidades avanzadas como funciones, etc. Pero podemos agregar nuevas hojas, rangos de celdas, agregar datos y muchas otras cosas usando Fast Excel Library.
Echemos un vistazo a los ejemplos de código:
using (FastExcel.FastExcel fastExcel = new FastExcel.FastExcel(new FileInfo("Template.xlsx"), new FileInfo("Output.xlsx"))) { //Create a worksheet with some rows var worksheet = new Worksheet(); var rows = new List(); for (int rowNumber = 1; rowNumber < 100000; rowNumber++) { List cells = new List(); for (int columnNumber = 1; columnNumber < 13; columnNumber++) { cells.Add(new Cell(columnNumber, columnNumber * DateTime.Now.Millisecond)); } cells.Add(new Cell(13,"FileFormat" + rowNumber)); cells.Add(new Cell(14,"FileFormat Developer Guide")); rows.Add(new Row(rowNumber, cells)); } worksheet.Rows = rows; fastExcel.Write(worksheet,"sheet1"); }
using (FastExcel.FastExcel fastExcel = new FastExcel.FastExcel(new FileInfo("input.xlsx"))) { //Create a some rows in a worksheet var worksheet = new Worksheet(); var rows = new List(); for (int rowNumber = 1; rowNumber < 100000; rowNumber += 50) { List cells = new List(); for (int columnNumber = 1; columnNumber < 13; columnNumber += 2) { cells.Add(new Cell(columnNumber, rowNumber)); } cells.Add(new Cell(13,"File Format Developer Guide")); rows.Add(new Row(rowNumber, cells)); } worksheet.Rows = rows; // Read the data fastExcel.Update(worksheet,"sheet1"); }
Es una biblioteca de código abierto. Por lo tanto, no hay un plan de precios para ello. Puede usarlo para sus funcionalidades básicas de Excel.
EPPlus es una biblioteca de C Excel que brinda acceso a los objetos y métodos de Excel, incluidos VBA y API. Con EPPlus, los desarrolladores pueden aprovechar el poder de Excel para crear aplicaciones complejas y de calidad o crear una hoja de cálculo rápida.
La biblioteca proporciona funciones para administrar celdas, filas y columnas; trabajar con hojas de trabajo, crear tablas dinámicas, tablas y gráficos; manipular campos de tablas dinámicas; trabajar con imágenes y exportar datos a otros formatos. EPPlus no tiene dependencias de ninguna otra biblioteca como Microsoft Excel. EPPlus no es solo una biblioteca estática: está en constante evolución en respuesta a los cambios en el entorno de la hoja de cálculo de Excel y las necesidades del usuario.
Puede observar su registro de cambios para ver cómo está evolucionando. EPPlus es distribuido por NuGet. La versión 5 de EPPlus admite .NET Framework desde la versión 3.5 y admite .NET Core desde la versión 2.0.
Los planes de precios de EPPlus son un poco confusos. No proporcionaron información completa sobre cómo funcionan los planes de precios y si es continuo o si tenemos que comprar año tras año.
Desafortunadamente, EPPlus no dio ningún ejemplo de código para demostrar cómo se usará. Y tampoco proporcionó ningún tutorial o versión de prueba gratuita.
Todas las bibliotecas son fantásticas y las mejores en sus campos. Pero cada biblioteca tiene sus pros y sus contras. EPPlus no tiene ninguna guía tutorial y los desarrolladores no están seguros de cómo funcionará esta biblioteca. Sin embargo, tiene un repositorio de Github. Y su plan de precios no está muy claro.
La biblioteca Fast Excel también es sólida, pero tiene funciones limitadas. Pero es una biblioteca de código abierto, por lo que podemos usarla en proyectos comerciales. Pero en mi opinión, una biblioteca pequeña de Excel no es compatible con proyectos grandes. Sería útil si optara por la biblioteca IronXL o EPPlus para usar operaciones de Excel en su gran proyecto comercial.
La biblioteca IronXL es una biblioteca madura con todas las características avanzadas que tenemos que usar en una aplicación de Excel avanzada. El punto excelente es que ofrece una prueba gratuita de 30 días en comerciales, por lo que se vuelve fácil probar si es compatible.