Apache POI-XSSF
API Java de código aberto para arquivos XLSX do Microsoft® Excel
Crie, edite e converta planilhas Excel XLSX para formatos de arquivo CSV e HTML através da Biblioteca Java.
O que é Apache POI-XSSF?
Apache POI-XSSF é uma implementação Java pura do formato de arquivo XLSX do Excel 2007. A API fornece procedimentos para criar, ler, modificar e gravar arquivos Excel XLSX. Ele fornece estruturas de baixo nível para pessoas com necessidades especiais. Ele também fornece uma API de modelo de evento para acesso somente leitura eficiente, bem como uma API de modelo de usuário completo para criar, ler e modificar arquivos XLSX. O Apache POI-XSSF oferece excelente suporte para recursos adicionais do Excel, como trabalhar com planilhas, fórmulas, criar estilos de célula preenchendo cores e bordas, fontes, cabeçalhos e rodapés, formas, validações de dados, imagens, hiperlinks e muito mais.
Primeiros passos com o Apache POI XSSF
Antes de tudo, você precisa ter o Java Development Kit (JDK) instalado em seu sistema. Se você já o possui, vá para a página download do POI do Apache para obter a versão estável mais recente em um arquivo. Extraia o conteúdo do arquivo ZIP em qualquer diretório de onde as bibliotecas necessárias possam ser vinculadas ao seu programa Java. Isso é tudo!
Fazer referência ao Apache POI em seu projeto Java baseado em Maven é ainda mais simples. Tudo que você precisa é adicionar a seguinte dependência em seu pom.xml e deixar seu IDE buscar e referenciar os arquivos Apache POI Jar.
Dependência do Apache POI Maven
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
Crie grandes planilhas do Excel usando a API Java
O Apache POI XSSF oferece pouca memória por meio da API SXSSF para lidar com grandes volumes de dados gravados em arquivos do MS Excel. Isso permite gravar arquivos muito grandes sem ficar sem memória, pois apenas uma parte configurável das linhas é mantida na memória a qualquer momento. O POI-SXSSF atinge seu baixo consumo de memória limitando o acesso às linhas que estão dentro de uma janela deslizante, enquanto o XSSF dá acesso a todas as linhas do documento. As linhas mais antigas que não estão mais na janela ficam inacessíveis, pois são gravadas no disco. Você pode criar um arquivo excel grande em java usando as seguintes etapas
Criar arquivo grande do Excel usando Java
- Crie um novo SXSSFWorkbook e mantenha 100 linhas na memória, as linhas excedentes serão liberadas para o disco
- Crie uma nova planilha usando o método createSheet()
- Insira dados em 2.000 linhas e 2.000 células usando createRow(), createCell() e setCellValue("Seus dados") dentro e um loop aninhado
- Salve o arquivo usando FileOutputStream() e passe o nome do arquivo de saída
- Gravar no arquivo usando o método SXSSFWorkbook.Write() e passar FileOutputStream como um parâmetro
Criar um arquivo grande do Excel
// create a new SXSSFWorkbook
SXSSFWorkbook wb = new SXSSFWorkbook(100);
Sheet sh = wb.createSheet();
// insert 2000 rows
for(int rownum = 0; rownum < 2000; rownum++){
Row row = sh.createRow(rownum);
// insert data in 20000 cells
for(int cellnum = 0; cellnum < 10; cellnum++){
Cell cell = row.createCell(cellnum);
cell.setCellValue("Row Number: "+ rownum + " Cell Number: "+ cellnum);
}
}
// save file
FileOutputStream out = new FileOutputStream("LargeDcument.xlsx");
wb.write(out);
out.close();
APIs Java para criação de pasta de trabalho do Excel e adição de planilhas
O Apache POI XSSF permite que os programadores de computador criem uma nova pasta de trabalho do Excel no formato de arquivo XLSX. Depois que os desenvolvedores criam a pasta de trabalho, as planilhas são criadas a partir de uma instância existente da pasta de trabalho e a planilha recém-criada é adicionada automaticamente em sequência à pasta de trabalho.
Criar pasta de trabalho do Excel e adicionar planilhas
// create a new XLSX file
Workbook workbook = new XSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXlsx.xlsx");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new sheet
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set cell value
cell.setCellValue("File Format Developer Guide");
// save file
workbook.write(outputStream);
Converter uma planilha do Excel para CSV e outro formato de arquivo
Desenvolvedores e programadores Java podem facilmente converter uma planilha do Excel em um formato de arquivo CSV usando a API Apache POI XSSF. CSV significa valores separados por vírgula e é um formato muito comum usado para troca de dados entre muitos aplicativos. Em primeiro lugar, os desenvolvedores precisam ler o arquivo XLS de entrada usando a API Apache POI XSSF e, em seguida, gravar as informações extraídas em arquivos CSV.
Converter XLSX para CSV
// Open and existing XLSX file
FileInputStream fileInStream = new FileInputStream("LargeDocument.xlsx");
XSSFWorkbook workBook = new XSSFWorkbook(fileInStream);
XSSFSheet selSheet = workBook.getSheetAt(0);
// Loop through all the rows
Iterator rowIterator = selSheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
// Loop through all rows and add ","
Iterator cellIterator = row.cellIterator();
StringBuffer stringBuffer = new StringBuffer();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
if (stringBuffer.length() != 0) {
stringBuffer.append(",");
}
stringBuffer.append(cell.getStringCellValue());
}
System.out.println(stringBuffer.toString());
}
workBook.close();
Aprimoramento XSSF para cabeçalhos e rodapés
Apache POI XSSF tem a capacidade de lidar com cabeçalhos e rodapés de primeira página, bem como cabeçalhos e rodapés pares/ímpares. Cabeçalhos e rodapés são uma parte muito importante de uma planilha do Excel. Geralmente contém informações extras, como datas, números de página, nome do autor e notas de rodapé, que ajudam a manter documentos mais longos organizados e mais fáceis de ler. Todos os sinalizadores de propriedade de cabeçalho/rodapé podem ser manipulados em XSSF. O cabeçalho e o rodapé ímpares são o cabeçalho e o rodapé padrão. Ele é exibido em todas as páginas que não exibem um cabeçalho de primeira página ou um cabeçalho de página par.
Mesclando células e extração de texto dentro de arquivos XLSX do Excel
O Apache POI XSSF fornece o recurso que permite aos programadores Java mesclar várias células em uma única célula dentro de uma planilha do Excel. Ele inclui métodos que usam índices de células como um argumento e mesclam as células em uma única célula grande. Um dos recursos mais exigentes é a capacidade de extrair texto de um arquivo XLSX e usá-lo de acordo com suas necessidades. O Apache POI fornece extração de texto básica para todos os formatos de arquivo suportados pelo projeto. Para necessidades avançadas de extração de texto, incluindo extração de Rich Text (como formatação e estilo), juntamente com saída XML e HTML, o Apache POI trabalha em estreita colaboração com o Apache Tika para fornecer Tika Parsers com POI para todos os formatos de arquivo suportados pelo projeto.