Képletek beállítása Excelben Apache POI-val

1. Áttekintés

Ebben a gyors bemutatóban arról fogunk beszélni, hogyan tudunk állítson képleteket egy Microsoft Excel táblázatba felhasználásával Apache POI egy egyszerű példán keresztül.

2. Apache POI

Az Apache POI egy népszerű nyílt forráskódú Java könyvtár, amely API-t biztosít a programozóknak MS Office létrehozása, módosítása és megjelenítése fájlokat.

Használja Munkafüzet hogy egy Excel fájlt és annak elemeit ábrázolja. A Sejt egy Excel fájlban különböző típusúak lehetnek, például KÉPLET.

Annak érdekében, hogy az Apache POI-t működés közben láthassuk, beállítunk egy képletet az Excel fájl A és B oszlopában szereplő értékek összegének kivonására. A linkelt fájl az alábbi adatokat tartalmazza:

3. Függőségek

Először hozzá kell adnunk a POI függőséget a projektünkhöz pom.xml fájl. Az Excel 2007+ munkafüzetek használatához használnunk kell poi-ooxml:

 org.apache.poi poi-ooxml 4.1.2 

Ne feledje, hogy az Excel korábbi verzióihoz a poi függőség helyett.

4. Cellakeresés

Először nyissuk meg a fájlunkat és állítsuk össze a megfelelő munkafüzetet:

FileInputStream inputStream = új FileInputStream (új File (fileLocation)); XSSFWorkbook excel = új XSSFWorkbook (inputStream);

Azután, létre kell hoznunk vagy fel kell keresnünk azt a cellát, amelyet használni fogunk. A korábban megosztott adatok felhasználásával szerkeszteni akarjuk a C1 cellát.

Ez az első lapon és az első sorban található, és az első üres oszlopot kérhetjük a POI-tól:

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

5. Képletek

Ezután képletet akarunk beállítani a keresett cellán.

Mint korábban említettük, vonjuk ki a B oszlop összegét az A oszlop összegéből. Az Excelben ez a következő lenne:

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

És ezt beírhatjuk a sajátunkba formulaCell a ... val setCellFormula módszer:

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

Ez nem fogja értékelni a képletet. Ehhez a POI-kat kell használnunk XSSFFormulaEvaluator:

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

Az eredmény az elsőben kerül meghatározásra Sejt a következő üres oszlop:

Mint láthatjuk, az eredmény kiszámítása és mentése a C oszlop első cellájában történik. A képlet a képletsávban is látható.

Vegye figyelembe, hogy a FormulaEvaluator osztály más módszereket biztosít számunkra az értékeléshez KÉPLET az Excel munkafüzetekben értékeliAll, amely az összes cellát áttekinti és kiértékeli.

6. Következtetés

Ebben az oktatóanyagban bemutattuk, hogyan állíthatunk be képletet egy Java Excel fájl cellájába az Apache POI API segítségével.

A cikk teljes forráskódjaelérhető a GitHubon.


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