Trabalhando com Excel em Java: Apache POI e alternativas

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com Excel em Java: Visão geral das bibliotecas e exemplos de código



Apesar de PythonLib ser dedicado ao Python, Java continua sendo uma das linguagens mais requisitadas no desenvolvimento corporativo, onde trabalhar com planilhas Excel é uma tarefa diária. Neste artigo, veremos as principais bibliotecas para trabalhar com Excel em Java, seus recursos e forneceremos exemplos práticos de código.



Por que bibliotecas para Excel em Java são necessárias?

Java não possui meios nativos para ler e escrever arquivos Excel. Para isso, são utilizadas bibliotecas de terceiros, que permitem:

  • Criar novas pastas de trabalho Excel (formatos XLS e XLSX).
  • Ler e editar arquivos existentes.
  • Formatar células, mesclá-las, definir estilos.
  • Trabalhar com fórmulas, gráficos e macros.
  • Exportar dados de bancos de dados ou outras fontes.


Principais bibliotecas



1. Apache POI

Apache POI é a biblioteca mais popular e poderosa para trabalhar com arquivos Microsoft Office em Java. Suporta tanto o formato antigo XLS (HSSF) quanto o novo XLSX (XSSF).

Vantagens:

  • Suporte completo a todos os recursos do Excel: fórmulas, estilos, formatação condicional, gráficos.
  • Comunidade ativa e atualizações regulares.
  • Suporte tanto para leitura quanto para escrita.

Desvantagens:

  • Alto consumo de memória ao trabalhar com arquivos grandes.
  • API complexa para iniciantes.


2. EasyExcel (Alibaba)

EasyExcel é uma biblioteca leve da Alibaba, criada para trabalhar com grandes arquivos XLSX. Ela utiliza processamento em fluxo, o que reduz significativamente o consumo de memória.

Vantagens:

  • Consumo mínimo de memória (até 100 vezes menor que o POI).
  • API simples e intuitiva.
  • Suporte a anotações para mapeamento de dados.

Desvantagens:

  • Não suporta o formato antigo XLS.
  • Suporte limitado a formatação.


3. JExcelApi (jxl)

Biblioteca antiga que suporta apenas o formato XLS. Adequada para tarefas simples, mas não é atualizada há muito tempo e não funciona com XLSX.



Exemplos de código



Exemplo 1: Lendo um arquivo Excel com Apache POI

import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileInputStream;import java.io.IOException;

public class ReadExcel { public static void main(String[] args) { try (FileInputStream fis = new FileInputStream("data.xlsx"); Workbook workbook = new XSSFWorkbook(fis)) { Sheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { for (Cell cell : row) { switch (cell.getCellType()) { case STRING: System.out.print(cell.getStringCellValue() + "\\t"); break; case NUMERIC: System.out.print(cell.getNumericCellValue() + "\\t"); break; case BOOLEAN: System.out.print(cell.getBooleanCellValue() + "\\t"); break; } } System.out.println(); } } catch (IOException e) { e.printStackTrace(); } }}


Exemplo 2: Escrevendo dados no Excel com Apache POI

import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileOutputStream;import java.io.IOException;

public class WriteExcel { public static void main(String[] args) { try (Workbook workbook = new XSSFWor

Recommendations