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 práticos

No desenvolvimento corporativo em Java, surge frequentemente a necessidade de criar, ler e modificar programaticamente planilhas Excel. Isso pode incluir geração de relatórios, importação de dados de sistemas externos ou exportação de resultados de cálculos. Neste artigo, abordaremos as principais bibliotecas para trabalhar com Excel em Java, suas características e apresentaremos exemplos de código ilustrativos.



Por que Java e não Python?

Apesar de nosso site se chamar PythonLib, o Java continua sendo uma das linguagens mais populares para desenvolvimento empresarial. Muitas empresas utilizam ativamente o Java para aplicações servidoras, e a integração com Excel é uma tarefa muito requisitada. Compreender como trabalhar com Excel em Java será útil tanto para desenvolvedores iniciantes quanto para os experientes.



Principais bibliotecas para trabalhar com Excel em Java

Existem várias bibliotecas maduras, cada uma com seus pontos fortes:



  • Apache POI — a biblioteca mais popular e funcional. Suporta os formatos .xls (HSSF) e .xlsx (XSSF). Permite criar, ler e modificar arquivos, suporta fórmulas, estilos e gráficos.
  • JExcelApi (jxl) — uma biblioteca mais leve, suporta apenas o formato antigo .xls. Adequada para tarefas simples, mas não é atualizada desde 2009.
  • Apache POI + XSSF/SXSSF — recursos avançados para trabalhar com arquivos grandes. O SXSSF (Streaming) permite processar milhões de linhas com baixo consumo de memória.
  • Docx4j — biblioteca para trabalhar com Office Open XML, pode ser usada para .xlsx, mas é mais comum para Word.


Começando com Apache POI

Para adicionar a biblioteca a um projeto Maven, adicione as seguintes dependências ao pom.xml:



<!-- Para trabalhar com .xls (HSSF) --><dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi</artifactId>    <version>5.2.5</version></dependency>

<!-- Para trabalhar com .xlsx (XSSF) --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.2.5</version></dependency>


Se você usa Gradle, adicione as linhas ao build.gradle:



implementation 'org.apache.poi:poi:5.2.5'implementation 'org.apache.poi:poi-ooxml:5.2.5'


Exemplo: criando um arquivo Excel com tabela

Vamos ver um exemplo simples de criação de um arquivo .xlsx com dados de funcionários.



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

public class ExcelWriter { public static void main(String[] args) { // Criando uma nova pasta de trabalho try (Workbook workbook = new XSSFWorkbook()) { // Criando uma planilha Sheet sheet = workbook.createSheet("Funcionários");

// Criando a linha de cabeçalho Row headerRow = sheet.createRow(0); String[] columns = {"ID", "Nome", "Cargo", "Salário"}; for (int i = 0; i < columns.length; i++) { Cell cell = headerRow.createCell(i); cell.setCellValue(columns[i]); // Deixando o cabeçalho em negrito CellStyle style = workbook.createCellStyle(); Font font = workbook.createFont(); font.setBold(true); style.setFont(font); cell.setCellStyle(style); }

// Preenchendo com dados Object[][] data = { {1, "Ivan Ivanov", "Desenvolvedor", 150000}, {2, "Petr Petrov", "Analista", 120000}, {3, "Sidor Sidorov", "Gerente", 180000}

Recommendations