Em nosso artigo anterior, analisamos os detalhes da Apache Poi, uma API Java de código aberto para trabalhar com formatos de arquivo Microsoft. Neste artigo, examinaremos o componente Apache POI para trabalhar com as pastas de trabalho do Excel. Também mostraremos como usar o Apache POI para criar um arquivo do Excel e adicionar folhas usando esta biblioteca Java.

apache poi java APIs para acessar formatos de arquivo do Excel

A APACH POI Java API fornece componentes separados para trabalhar com dois formatos de arquivo do Excel diferentes. Estes são:

  1. HSSF (formato de planilha horrível)-para trabalhar com formatos de arquivo do Excel 97-2003
  2. XSSF (formato de planilha XML) - para trabalhar com o Excel 2007 e os formatos de arquivo posteriores Especificamente, HSSF permite ler arquivos XLS, enquanto arquivos permitem ler os arquivos xls e xlsx. Ambas as APIs permitem criar, ler e manipular arquivos do Excel no seu aplicativo Java sem entrar nos detalhes dos formatos de arquivo subjacentes.

Como criar o arquivo Excel XLSX em java?

Neste exemplo, passaremos pelos detalhes do uso do Apache POI XSSF para criar arquivos XLSX em nosso aplicativo Java. Nesta fase, assumimos que você já instalou e configurou a API APACH POI no seu aplicativo Java. Se você não o fez, pode visitar o Instalar o Apache Poi para Java e seguir as etapas.

Etapas para criar a pasta de trabalho do Excel usando Apache Poi

Criar uma pasta de trabalho do Excel usando a APACHE POI API para Java é simples e fácil e pode ser alcançado usando as etapas a seguir.

  1. Crie uma pasta de trabalho usando o XSSFWorkbook Classe
  2. Feche o fluxo de saída. O código Java para criar a pasta de trabalho do Excel usando o Apache POI é o seguinte.
XSSFWorkbook wb = new XSSFWorkbook();
...
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

O código acima criará uma pasta de trabalho do Excel no formato de arquivo XLSX. No entanto, se você abrirá a pasta de trabalho nesta fase, receberá o seguinte erro.

A razão para isso é que uma pasta de trabalho do Excel usando o Apache POI sem nenhuma planilha dá esse erro. Para resolver esse problema, precisamos adicionar pelo menos uma planilha ao arquivo do Excel gerado.

Adicione a planilha à pasta de trabalho do Excel com Apache Poi em Java

Isso nos leva à etapa em que precisamos adicionar uma planilha à pasta de trabalho para que ela funcione corretamente. Isso pode ser alcançado usando o objeto XSSFSHEET, que é adicionado à pasta de trabalho, conforme mostrado na amostra de código a seguir.

XSSFWorkbook wb1 = new XSSFWorkbook();
try
{
	XSSFSheet sheet1 = wb1.createSheet("Ripon");
	FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
	wb1.write(fileOut);    
	fileOut.close();
}
catch(Exception ex)
{
	System.out.println("XLSX Generated Error...");
}

completo xssfworkbook exemplo

Agora que vimos como criar uma pasta de trabalho e adicionar uma folha com Apache POI API para Java, vamos dar uma olhada em como adicionaremos linhas e células à planilha criada. A classe XSSFSheet possui o Method Createrow que permite adicionar uma linha à folha. Isso retorna um objeto da classe fila que representa uma linha na planilha do Excel. Para criar células na planilha, precisamos usar o método CreateCell que retorna um objeto da classe XSSFCell. O método setCellValue do XSSFCell é usado para definir o valor da célula. Um exemplo completo de criação de uma pasta de trabalho usando o XSSFWorkbook, adicionando uma folha usando o XSSFSheet e adicionando o XSSFrow a ela é mostrada abaixo.

// Blank workbook
        XSSFWorkbook workbook = new XSSFWorkbook();
        // Creating a blank Excel sheet
        XSSFSheet sheet = workbook.createSheet("student Details");
        // Creating an empty TreeMap of string and Object][] type
        Map<String, Object[]> data = new TreeMap<String, Object[]>();
        // Writing data to Object[]
        // using put() method
        data.put("1", new Object[] { "ID", "CITY", "STATE" });
        data.put("2", new Object[] { 1, "Clanton", "Alabama" });
        data.put("3", new Object[] { 2, "Cordova", "Alaska" });
        data.put("4", new Object[] { 3, "Clifton", "Arizona" });
        data.put("5", new Object[] { 4, "Arcadia", "California" });
  
	// Iterating over data and writing it to sheet
	Set<String> keyset = data.keySet(); 
        int rownum = 0;
        for (String key : keyset) { 
            // Creating a new row in the sheet
            XSSFRow row = sheet.createRow(rownum++); 
            Object[] objArr = data.get(key); 
            int cellnum = 0; 
            for (Object obj : objArr) { 
                // This line creates a cell in the next column of that row
                XSSFCell cell = row.createCell(cellnum++); 
                if (obj instanceof String)
                    cell.setCellValue((String)obj); 
                else if (obj instanceof Integer)
                    cell.setCellValue((Integer)obj);
            }
        }     
        // Writing the workbook
        FileOutputStream out = new FileOutputStream("gfgcontribute.xlsx");
        workbook.write(out); 
        // Closing file output connections
        out.close();

Conclusão

Neste artigo do blog, demonstramos como criar uma pasta de trabalho do Excel usando Apache POI API para Java. Utilizamos o XSSFWorkbook para gerar uma pasta de trabalho XLSX, adicionar planilhas, adicionar linhas à planilha e preencher dados nas células da planilha. Para mais exemplos de trabalho com pastas de trabalho do Excel usando o Apache Poi para Java, fique atento.