Post técnico: Excel Processor

Autor: Francisco Refoyo, Ingeniero de desarrollo de software Senior. Ilitia Technologies.


En base a múltiples experiencias como desarrollador, surge la necesidad de disponer de una capa software que nos ayude a lectura y creación de archivos Excel .xlsx.

Para resolver este problema hay dos enfoques:

  • Adquirir un producto de terceros: En el mercado hay variedad de opciones pero todas pasan por una licencia de pago que no siempre se puede y/o desea afrontar
  • Utilizar el SDK de Open XML para Office: Sin conocer a fondo la API oficial de Microsoft esto es un camino complejo, muy sujeto a errores y de gran riesgo a la hora de realizar una estimación temporal para implementar las necesidades del proyecto

La solución propuesta se trata de un wrapper C# .NET sobre Open XML que ofrece de forma unificada y amigable las operaciones más comunes para la lectura y escritura de archivos xlsx, que nos permite abstraernos de Open XML y centrarnos en lo que realmente importa: La lógica de negocio.

En la edición/creación podemos:

  • Definir y utilizar estilos visuales
  • Insertar valores, fórmulas e imágenes
  • Fusionar filas y columnas
  • Establecer el alto de las filas

Con las operaciones de lectura además del conjunto de datos leídos se ofrece la posibilidad de obtener una lista unificada de errores con tres niveles de precisión: celda, fila y global.

En escenarios donde el archivo a leer sea muy grande se dispone de un modo de lectura por bloques en paralelo que reduce el tiempo de ejecución significativamente.

Para más detalles se remite al código accesible de manera abierta en GitHub.