Trabajar con documentos Excel con Java

Una de las nuevas funcionalidades de Opina que está planificada para la versión 1.4.0 es la exportación de los resultados de una encuesta a una hoja de cálculo Excel. Inicialmente había pensado en trabajar con OpenDocument, pero necesitaba compatibilidad con Microsoft Excel 97 y sus versiones posteriores. La verdad es que la hoja de cálculo que se necesita es un muy simple, nada de imágenes, nada de fórmulas, simplemente celdas con algo de estilos (colores, tipos de letra y tamaños) y datos.

Las opciones que encontré para trabajar con documentos Excel desde Java fueron:

  1. JExcelApi
  2. POI-HSSF / POI-XSSF

En estos momentos estoy usando la primera en Opina, y las impresiones son muy buenas:

  • Aunque a priori la documentación parece escasa, es suficiente para comenzar a trabajar y montar un ejemplo.
  • Tiene carencias en cuanto al manejo de fórmulas y gráficos, pero si no necesitas algo complejo, es una opción válida.
  • No he trabajado con documentos complejos y grandes, pero en breve tendré referencias en este sentido. Tengo encuestas con más de 40 preguntas y más de 1500 usuarios encuestados. Además la estamos usando en un proyecto donde se gestiona un volumen de datos importante y puede ser otra buena referencia. Cuando tenga resultados, los compartiré.
  • Los conceptos a manejar son pocos: workbook, worksheet, label, writableFont, writableCellFormat y algunos más.
  • La última versión (2.6.10) es el 28 de mayo de 2009. La primera versión de la rama 2.x es del 10 de octubre de 2003. Durante este periodo más de 30 versiones publicadas. Y si vemos la lista de correo, podemos comprobar su actividad.

Que conste que las necesidades que Opina tiene son muy básicas, es probable que otro tipo de proyectos tengan más requisitos y tengan que descartar esta opción. He buscando el artefacto por los repositorios de Maven que conozco, pero no lo he encontrado. Por lo tanto, he definido sus coordenadas para instalarlo en mi repositorio local (y en nuestro ecosistema) y he añadido el JAR a directorio libs correspondiente.

De la segunda opción no puedo decir nada de primera mano, sólo tengo comentarios e impresiones. Es un proyecto importante en ASF y son muchos los proyectos que en él se apoyan, por lo tanto, me da confianza. De hecho lo usamos de forma indirecta porque Eclipse Birt es nuestra opción (actual) para la generación de reportes.

4 thoughts on “Trabajar con documentos Excel con Java

  1. Y por qué no desarrollas un interface generico para “export plugins”, y de esa manera dejas libre la eleccion de la libreria a usar para exportar excel, al tiempo que abres la posibilidad para exportar a otros formatos?

  2. Hola Manuel:

    Totalmente de acuerdo pero estoy midiendo mucho el tiempo que le dedico a la rama 1.x del proyecto. Estoy volcando mis esfuerzos en la rama 2.x.

    Para hacer lo que comentas tendría que refactorizar parte del código y he pensado que no compensaba. Para la versión 1.4.0 sólo estará la posibilidad de exportar a EXCEL. De forma indirecta tienes CSV y compatibilidad con OpenOffice y Microsoft Office.

    Supongo que esto tiene que ver con tu post sobre interfaces.

    Un saludo

  3. Hola.
    He estado usando JExcelAPI durante varios años y me parece un API más que suficiente para las necesidades cotidianas que solemos tener. Aunque la homepage del proyecto no está muy cuidada, la librería tiene un mantenimiento constante, no hay mas que mirar a las distintas releases disponibles en source forge. La última versión 2.6.10, es del 28 de mayo de 2009.
    Por echarle algo en cara, no parece que en su procemiento para hacer una release tengan una tarea para subir la librería al repositorio central de Maven.
    He usado POI en una ocasión para realizar la nada recomendable tarea de crear un proceso batch para “intentar” sacar información de un formulario en MS. Word, que fue rellenado y enviado por miles de usuarios. El resultado fue mejor de lo experado, pero evidentemente la información extraída no podía ser nunca 100% consistente. Por lo que al final tuvieron que revisar a mano…ya se lo advertimos, pero es que estos funcionarios querían por todos los medios agotar hasta el último recurso que les evitara trabajar. De todas maneras ya cometieron el error no haciendo un formulario web como Dios manda….

    Salu2

  4. Pingback: Mi espacio » Trabajar con documentos CSV con Java

Leave a Reply

Your email address will not be published. Required fields are marked *