Formules instellen in Excel met Apache POI

1. Overzicht

In deze korte tutorial gaan we praten over hoe we dat kunnen formules instellen in een Microsoft Excel-spreadsheet gebruik makend van Apache POI door een eenvoudig voorbeeld.

2. Apache POI

Apache POI is een populaire open-source Java-bibliotheek die programmeurs API's biedt voor MS Office maken, wijzigen en weergeven bestanden.

Het gebruikt Werkboek om een ​​Excel-bestand en zijn elementen weer te geven. EEN Cel in een Excel-bestand kan verschillende typen hebben, zoals FORMULE.

Om Apache POI in actie te zien, gaan we een formule instellen om de som van de waarden in de kolommen A en B in een Excel-bestand af te trekken. Het gekoppelde bestand bevat de onderstaande gegevens:

3. Afhankelijkheden

Eerst moeten we de POI-afhankelijkheid aan ons project toevoegen pom.xml het dossier. Om met Excel 2007+ werkmappen te werken, zouden we moeten gebruiken poi-ooxml:

 org.apache.poi poi-ooxml 4.1.2 

Merk op dat we voor eerdere versies van Excel de poi afhankelijkheid in plaats daarvan.

4. Cel opzoeken

Laten we om te beginnen eerst ons bestand openen en de juiste werkmap samenstellen:

FileInputStream inputStream = nieuwe FileInputStream (nieuw bestand (fileLocation)); XSSFWorkbook Excel = nieuw XSSFWorkbook (inputStream);

Dan, we moeten de cel maken of opzoeken die we gaan gebruiken. Met behulp van de eerder gedeelde gegevens willen we cel C1 bewerken.

Dat is op het eerste blad en de eerste rij, en we kunnen POI vragen voor de eerste lege kolom:

XSSFSheet-blad = excel.getSheetAt (0); int lastCellNum = sheet.getRow (0) .getLastCellNum (); XSSFCell formuleCell = sheet.getRow (0) .createCell (lastCellNum + 1);

5. Formules

Vervolgens willen we een formule instellen voor de cel die we hebben opgezocht.

Zoals eerder vermeld, trekken we de som van kolom B af van de som van kolom A. In Excel zou dit zijn:

= SOM (A: A) -SOM (B: B)

En we kunnen dat in ons schrijven formule Cell met de setCellFormula methode:

formuleCell.setCellFormula ("SUM (A: A) -SUM (B: B)");

Dit zal de formule nu niet evalueren. Om dat te doen, hebben we POI's nodig XSSFFormulaEvaluator:

XSSFFormulaEvaluator formuleEvaluator = excel.getCreationHelper (). CreateFormulaEvaluator (); formuleEvaluator.evaluateFormulaCell (formuleCell);

Het resultaat wordt in de eerste geplaatst Cel van de volgende lege kolom:

Zoals we kunnen zien, wordt het resultaat berekend en opgeslagen in de eerste cel van kolom C. Ook wordt de formule weergegeven in de formulebalk.

Merk op dat de Formule Evaluator class biedt ons andere methoden om te evalueren FORMULE in Excel-werkmappen, zoals evaluAll, die alle cellen doorloopt en evalueert.

6. Conclusie

In deze tutorial hebben we laten zien hoe je een formule instelt op een cel in een Excel-bestand in Java met behulp van de Apache POI API.

De volledige broncode voor dit artikelis beschikbaar op GitHub.


$config[zx-auto] not found$config[zx-overlay] not found