He utilizado tanto JXL (ahora "JExcel") como Apache POI . Al principio usé JXL, pero ahora uso Apache POI.
Primero, aquí están las cosas en las que ambas API tienen la misma funcionalidad final:
- Ambos son gratis
- Estilo de celda: alineación, fondos (colores y patrones), bordes (tipos y colores), soporte de fuente (nombres de fuente, colores, tamaño, negrita, cursiva, tachado, subrayado)
- Fórmulas
- Hipervínculos
- Regiones celulares fusionadas
- Tamaño de filas y columnas
- Formato de datos: números y fechas
- Ajuste de texto dentro de las celdas
- Congelar paneles
- Soporte de encabezado / pie de página
- Leer / escribir hojas de cálculo nuevas y existentes
- Ambos intentan mantener intactos los objetos existentes en las hojas de cálculo que leen en la medida de lo posible.
Sin embargo, existen muchas diferencias:
- Quizás la diferencia más significativa es que Java JXL no es compatible con el formato ".xlsx" de Excel 2007+; sólo admite el antiguo formato BIFF (binario) ".xls". Apache POI admite ambos con un diseño común.
- Además, la parte de Java de la API JXL se actualizó por última vez en 2009 (hace 3 años, 4 meses mientras escribo esto), aunque parece que hay una API C #. Apache POI se mantiene activamente.
- JXL no admite el formato condicional, Apache POI lo hace, aunque esto no es tan significativo, porque puede formatear celdas condicionalmente con su propio código.
- JXL no admite el formato de texto enriquecido , es decir, un formato diferente dentro de una cadena de texto; Apache POI lo admite.
- JXL solo admite ciertas rotaciones de texto: horizontal / vertical, +/- 45 grados y apilado; Apache POI admite cualquier número entero de grados más apilado.
- JXL no admite formas de dibujo; Apache POI lo hace.
- JXL admite la mayoría de las configuraciones de configuración de página, como horizontal / vertical, márgenes, tamaño de papel y zoom. Apache POI admite todo eso, además de filas y columnas repetidas.
- JXL no admite paneles divididos; Apache POI lo hace.
- JXL no admite la creación o manipulación de gráficos; ese soporte aún no existe en Apache POI, pero una API está comenzando a formarse lentamente.
- Apache POI tiene un conjunto de documentación y ejemplos más extenso disponible que JXL.
Además, POI contiene no solo la API principal de "modelo de usuario", sino también una API basada en eventos si todo lo que desea hacer es leer el contenido de la hoja de cálculo.
En conclusión, debido a la mejor documentación, más funciones, desarrollo activo y compatibilidad con el formato Excel 2007+, utilizo Apache POI.