Sette formler i Excel med Apache POI

1. Oversikt

I denne raske opplæringen skal vi snakke om hvordan vi kan angi formler i et Microsoft Excel-regneark ved hjelp av Apache POI gjennom et enkelt eksempel.

2. Apache POI

Apache POI er et populært Java-bibliotek med åpen kildekode som gir programmerere APIer til opprette, endre og vise MS Office filer.

Det bruker Arbeidsbok å representere en Excel-fil og dens elementer. EN Celle i en Excel-fil kan ha forskjellige typer som FORMEL.

For å se Apache POI i aksjon, skal vi sette en formel for å trekke summen av verdiene i kolonnene A og B i en Excel-fil. Den koblede filen inneholder dataene nedenfor:

3. Avhengigheter

Først må vi legge til POI-avhengighet i prosjektet vårt pom.xml fil. For å jobbe med Excel 2007+ arbeidsbøker, bør vi bruke poi-ooxml:

 org.apache.poi poi-ooxml 4.1.2 

Merk at for tidligere versjoner av Excel, bør vi bruke poi avhengighet i stedet.

4. Celleoppslag

For å begynne, la oss først åpne filen vår og konstruere riktig arbeidsbok:

FileInputStream inputStream = ny FileInputStream (ny fil (fileLocation)); XSSFWorkbook excel = ny XSSFWorkbook (inputStream);

Deretter, vi trenger å opprette eller slå opp cellen vi skal bruke. Ved å bruke dataene som ble delt tidligere, vil vi redigere celle C1.

Det er på første ark og første rad, og vi kan be POI om den første tomme kolonnen:

XSSFSheetark = excel.getSheetAt (0); int lastCellNum = sheet.getRow (0) .getLastCellNum (); XSSFCell formulaCell = sheet.getRow (0) .createCell (lastCellNum + 1);

5. Formler

Deretter vil vi sette en formel på cellen vi har sett opp.

Som nevnt tidligere, la oss trekke summen av kolonne B fra summen av kolonne A. I Excel vil dette være:

= SUM (A: A) -SUM (B: B)

Og vi kan skrive det inn i vårt formelCell med setCellFormula metode:

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

Dette vil ikke evaluere formelen. For å gjøre det, må vi bruke interessepunkter XSSFFormulaEvaluator:

XSSFFormulaEvaluator formulaEvaluator = excel.getCreationHelper (). CreateFormulaEvaluator (); formulaEvaluator.evaluateFormulaCell (formulaCell);

Resultatet vil bli satt i den første Celle av neste tomme kolonne:

Som vi kan se, blir resultatet beregnet og lagret i den første cellen i kolonne C. Formelen vises også i formellinjen.

Merk at FormulaEvaluator klasse gir oss andre metoder for å evaluere FORMEL i Excel-arbeidsbøker, som evaluere alle, som vil løkke over alle celler og evaluere dem.

6. Konklusjon

I denne opplæringen viste vi hvordan du setter en formel på en celle i en Excel-fil i Java ved hjelp av Apache POI API.

Den komplette kildekoden for denne artikkelener tilgjengelig på GitHub.


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