Usei o JXL (agora "JExcel") e o Apache POI . No começo eu usei JXL, mas agora uso o Apache POI.
Primeiro, aqui estão as coisas em que ambas as APIs têm a mesma funcionalidade final:
- Ambos são gratuitos
- Estilo de célula: alinhamento, planos de fundo (cores e padrões), bordas (tipos e cores), suporte de fonte (nomes de fontes, cores, tamanho, negrito, itálico, riscado, sublinhado)
- Fórmulas
- Hiperlinks
- Regiões de células mescladas
- Tamanho das linhas e colunas
- Formatação de dados: números e datas
- Quebra de texto dentro das células
- Congelar painéis
- Suporte para cabeçalho / rodapé
- Ler / escrever planilhas novas e existentes
- Ambos tentam manter os objetos existentes nas planilhas que lêem intactos, tanto quanto possível.
No entanto, existem muitas diferenças:
- Talvez a diferença mais significativa seja que o Java JXL não oferece suporte ao formato ".xlsx" do Excel 2007+; ele suporta apenas o antigo formato BIFF (binário) ".xls". O Apache POI oferece suporte a ambos com um design comum.
- Além disso, a parte Java da API JXL foi atualizada pela última vez em 2009 (3 anos, 4 meses atrás, enquanto escrevo isso), embora pareça que existe uma API C #. O Apache POI é mantido ativamente.
- JXL não oferece suporte à Formatação Condicional, mas o Apache POI, embora isso não seja tão significativo, porque você pode formatar células condicionalmente com seu próprio código.
- JXL não suporta formatação rich text , ou seja, formatação diferente dentro de uma string de texto; Apache POI oferece suporte.
- JXL suporta apenas certas rotações de texto: horizontal / vertical, +/- 45 graus e empilhado; Apache POI suporta qualquer número inteiro de graus mais empilhados.
- JXL não suporta o desenho de formas; O Apache POI sim.
- JXL suporta a maioria das configurações de configuração de página, como Paisagem / Retrato, Margens, Tamanho do papel e Zoom. O Apache POI oferece suporte a tudo isso, além de Repetir Linhas e Colunas.
- JXL não oferece suporte a painéis divididos; O Apache POI sim.
- JXL não oferece suporte à criação ou manipulação de gráficos; esse suporte ainda não existe no Apache POI, mas uma API está lentamente começando a se formar.
- O Apache POI tem um conjunto mais extenso de documentação e exemplos disponíveis do que o JXL.
Além disso, o POI contém não apenas a API "usermodel" principal, mas também uma API baseada em eventos, se tudo o que você quiser fazer for ler o conteúdo da planilha.
Concluindo, por causa da melhor documentação, mais recursos, desenvolvimento ativo e suporte ao formato Excel 2007+, eu uso o Apache POI.