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.