Nel nostro precedente articolo, abbiamo esaminato i dettagli di Apache Poi, un’API Java open source per aver lavorato con i formati di file Microsoft. In questo articolo, passeremo attraverso il componente Apache POI per lavorare con le cartelle di lavoro di Excel. Mostreremo anche come utilizzare Apache Poi per creare un file Excel e aggiungere fogli usando questa libreria Java.

APACHE POI JAVA API per l’accesso ai formati di file Excel

API Apache Poi Java fornisce componenti separati per lavorare con due diversi formati di file Excel. Questi sono:

  1. HSSF (formato orribile del foglio di calcolo)-Per lavorare con i formati di file Excel 97-2003
  2. xssf (formato foglio di calcolo XML) - per lavorare con Excel 2007 e successivi formati di file In particolare, HSSF ti consente di leggere i file XLS mentre xssf ti consente di leggere XLS e XLSX. Entrambe queste API ti consentono di creare, leggere e manipolare i file Excel all’interno della tua applicazione Java senza entrare nei dettagli dei formati di file sottostanti.

Come creare il file XLSX Excel in Java?

In questo esempio, esamineremo i dettagli dell’utilizzo di Apache POI XSSF per creare file XLSX nella nostra applicazione Java. In questa fase, supponiamo che tu abbia già installato e configurato API Apache POI nella tua applicazione Java. Se non l’hai fatto, puoi visitare Installa Apache Poi per Java e seguire i passaggi.

Passaggi per creare la cartella di lavoro Excel usando Apache Poi

La creazione di una cartella di lavoro Excel usando Apache POI API per Java è semplice e facile e può essere raggiunta utilizzando i seguenti passaggi.

  1. Crea una cartella di lavoro utilizzando la classe xssfwork
  2. Chiudere il flusso di output. Il codice Java per creare la cartella di lavoro Excel usando Apache Poi è il seguente.
XSSFWorkbook wb = new XSSFWorkbook();
...
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

Il codice sopra creerà una cartella di lavoro Excel in formato file XLSX. Tuttavia, se aprirai la cartella di lavoro in questa fase, riceverai il seguente errore.

La ragione di ciò è che una cartella di lavoro Excel che utilizza Apache POI senza alcun foglio di lavoro fornisce questo errore. Per risolvere questo problema, dobbiamo aggiungere almeno un foglio di lavoro al file Excel generato.

Aggiungi il foglio di lavoro alla cartella di lavoro Excel con Apache Poi in Java

Questo ci porta al passo in cui dobbiamo aggiungere un foglio di lavoro alla cartella di lavoro affinché funzioni correttamente. Ciò può essere ottenuto utilizzando l’oggetto xssfsheet che viene aggiunto alla cartella di lavoro come mostrato nel seguente campione di codice.

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...");
}

Completa XSSFWorkbook Esempio

Ora che abbiamo visto come creare una cartella di lavoro e aggiungerne un foglio con Apache Poi API per Java, diamo un’occhiata a come aggiungeremo righe e celle al foglio di lavoro creato. La classe del foglio XSSF ha la creatrow Method che ti consente di aggiungere una riga al foglio. Questo restituisce un oggetto della classe di riga che rappresenta una riga nel foglio di lavoro Excel. Per creare celle nel foglio di lavoro, dobbiamo utilizzare il metodo CreateCell che restituisce un oggetto della classe XSSFCell. Il metodo setCellValue di XSSFCell viene utilizzato per impostare il valore della cella. Un esempio completo di creazione di una cartella di lavoro utilizzando XSSFWorkbook, aggiungendo un foglio usando il foglio XSSF e l’aggiunta di XSSFrow è mostrato di seguito.

// 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();

conclusione

In questo articolo del blog, abbiamo dimostrato come creare una cartella di lavoro Excel usando Apache Poi API per Java. Abbiamo usato l’XSSFWorkbook per generare una cartella di lavoro XLSX, aggiunto fogli di lavoro, aggiunto righe al foglio di lavoro e popolare i dati nelle celle nel foglio di lavoro. Per ulteriori esempi di lavoro con le cartelle di lavoro di Excel usando Apache Poi per Java, rimanete sintonizzati.