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 Também na biblioteca
Trabalho com XML em Java: bibliotecas e ferramentas para parsing
XCTest — Testes em Swift (iOS/macOS)
Métricas Prometheus em Go: criação e exportação de métricas em Golang