Le potenti funzionalità di formula di Microsoft Excel sono essenziali per eseguire calcoli complessi, analisi dei dati e creazione di report dinamici. E se potessi automatizzare queste operazioni formali usando una libreria Java? È qui che entra in gioco Apache Poi. In questo post sul blog, mostreremo come utilizzare la libreria Apache Poi per calcolare le formule Excel dall’interno della tua applicazione Java e salvare la cartella di lavoro come file xlsx.

Comprensione di formule e calcoli

Le formule sono al centro della funzionalità di Excel. Ti consentono di eseguire operazioni matematiche, manipolare i dati e creare relazioni tra cellule diverse. Apache POI consente agli sviluppatori di Java di generare e manipolare a livello di programmazione queste formule, abilitando l’automazione e la personalizzazione.

Impostazione del tuo progetto

Prima di immergerci nei dettagli delle formule, impostiamo il nostro progetto per lavorare con Apache Poi. Dovrai includere le biblioteche POI appropriate nel tuo progetto Java. Puoi scaricare le librerie dal sito Web Apache Poi o aggiungerle attraverso uno strumento di gestione delle dipendenze come Maven o Gradle. Controlla il nostro articolo Apache Poi API Panoramica per ulteriori informazioni sulla configurazione dell’ambiente di sviluppo per il tuo progetto.

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.0.1</version>
</dependency>

Creazione di formule di base

Cominciamo con un semplice esempio. Immagina di avere un foglio Excel con due colonne contenenti numeri. Vuoi calcolare la somma di questi numeri in una terza colonna. Ecco come puoi ottenere questo usando Apache Poi:

Importa le classi necessarie

Inizia importando le classi richieste dalla libreria Apache Poi, come cartellone di lavoro, foglio e riga.

Accedi alle celle desiderate

Usa il metodo getCell () per accedere alle celle contenenti i numeri che si desidera sommare.

crea una formula

Utilizzare il metodo createFormula () per generare la formula. In questo caso, sarà qualcosa di simile alla somma (A2: B2).

Imposta la formula sulla cella di destinazione

Assegna la formula alla cella in cui si desidera che il risultato venga visualizzato usando il metodo setCellformula ().

Valuta la formula

Dopo aver impostato la formula, utilizzare il metodo EvaluteFormulacell () per calcolare e popolare il risultato.

Excel Formule Using Apache Poi Java Library

Diamo un’occhiata al seguente campione di codice che utilizza:

  • Aggiungi formula per aggiungere due valori in una cella
  • Potenza Formula per calcolare la potenza di un valore in una cella
  • Max Formula per ottenere il valore massimo di una cella
  • Fatto Formula per calcolare il fattoriale di un valore in una cella
  • sqrt formula per calcolare la radice quadrata di un valore in una cella Il seguente campione di codice mostra l’uso di queste formule Excel all’interno della tua applicazione Java.
XSSFWorkbook wb = new XSSFWorkbook(); 
XSSFSheet spreadsheet = wb("formula");
XSSFRow row = spreadsheet.createRow(1);
XSSFCell cell = row.createCell(1);
cell.setCellValue("A = ");
cell = row.createCell(2);
cell.setCellValue(2);
row = spreadsheet.createRow(2);
cell = row.createCell(1);
cell.setCellValue("B = ");
cell = row.createCell(2);
cell.setCellValue(4);
row = spreadsheet.createRow(3);
cell = row.createCell(1);
cell.setCellValue("Total = ");
cell = row.createCell(2);
// Create SUM formula
cell.setCellFormula("SUM(C2:C3)");
cell = row.createCell(3);
cell.setCellValue("SUM(C2:C3)");
row = spreadsheet.createRow(4);
cell = row.createCell(1);
cell.setCellValue("POWER =");
cell=row.createCell(2);
// Create POWER formula
cell.setCellFormula("POWER(C2,C3)");
cell = row.createCell(3);
cell.setCellValue("POWER(C2,C3)");
row = spreadsheet.createRow(5);
cell = row.createCell(1);
cell.setCellValue("MAX = ");
cell = row.createCell(2);
// Create MAX formula
cell.setCellFormula("MAX(C2,C3)");
cell = row.createCell(3);
cell.setCellValue("MAX(C2,C3)");
row = spreadsheet.createRow(6);
cell = row.createCell(1);
cell.setCellValue("FACT = ");
cell = row.createCell(2);
// Create FACT formula
cell.setCellFormula("FACT(C3)");
cell = row.createCell(3);
cell.setCellValue("FACT(C3)");
row = spreadsheet.createRow(7);
cell = row.createCell(1);
cell.setCellValue("SQRT = ");
cell = row.createCell(2);
// Create SQRT formula
cell.setCellFormula("SQRT(C5)");
cell = row.createCell(3);
cell.setCellValue("SQRT(C5)");
wb.getCreationHelper().createFormulaEvaluator().evaluateAll();
FileOutputStream out = new FileOutputStream("formula.xlsx");
wb.write(out);
out.close();
System.out.println("fromula.xlsx written successfully");

conclusione

Apache POI sblocca il potenziale per automatizzare e personalizzare le formule Excel e i calcoli attraverso il codice Java. Che tu stia costruendo report finanziari, strumenti di analisi dei dati o qualsiasi applicazione che coinvolge la manipolazione di Excel, le capacità di formula di Apache Poi sono una potente aggiunta al tuo toolkit. Comprendendo come creare, valutare e gestire le formule utilizzando Apache POI, è possibile semplificare i flussi di lavoro, migliorare l’accuratezza e risparmiare tempo prezioso.