Postavljanje formula u Excelu s Apache POI

1. Pregled

U ovom brzom vodiču razgovarat ćemo o tome kako možemo postaviti formule u proračunsku tablicu Microsoft Excel koristeći Apache POI kroz jednostavan primjer.

2. Apache POI

Apache POI je popularna Java biblioteka otvorenog koda koja programerima pruža API-je za stvoriti, izmijeniti i prikazati MS Office datoteke.

Koristi Radna bilježnica za predstavljanje Excel datoteke i njezinih elemenata. A Ćelija u Excel datoteci mogu imati različite vrste kao što su FORMULA.

Kako bismo vidjeli Apache POI na djelu, postavit ćemo formulu za oduzimanje zbroja vrijednosti u stupcima A i B u Excelovoj datoteci. Povezana datoteka sadrži podatke u nastavku:

3. Ovisnosti

Prvo, svom projektu moramo dodati ovisnost o POI pom.xml datoteka. Za rad s radnim knjigama Excel 2007+ trebali bismo koristiti poi-ooxml:

 org.apache.poi poi-ooxml 4.1.2 

Imajte na umu da bismo za starije verzije Excela trebali koristiti poi ovisnost umjesto toga.

4. Pretraživanje ćelije

Za početak, prvo otvorimo našu datoteku i napravimo odgovarajuću radnu knjigu:

FileInputStream inputStream = novi FileInputStream (nova datoteka (fileLocation)); XSSFWorkbook excel = nova XSSFWorkbook (inputStream);

Zatim, moramo stvoriti ili potražiti ćeliju koju ćemo koristiti. Koristeći ranije podijeljene podatke, želimo urediti ćeliju C1.

To je na prvom listu i prvom redu, a POI možemo zatražiti za prvi prazan stupac:

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

5. Formule

Dalje, želimo postaviti formulu na ćeliju koju smo potražili.

Kao što je ranije rečeno, oduzmimo zbroj stupca B od zbroja stupca A. U Excelu bi to bilo:

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

I to možemo zapisati u svoj formulaCell s setCellFormula metoda:

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

Ovo neće procijeniti formulu. Da bismo to učinili, trebat ćemo koristiti točke interesa XSSFFormulaEvaluator:

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

Rezultat će biti postavljen u prvom Ćelija sljedećeg praznog stupca:

Kao što vidimo, rezultat se izračunava i sprema u prvu ćeliju stupca C. Također je formula prikazana na traci s formulama.

Imajte na umu da Procjenitelj formule razred nam pruža druge metode vrednovanja FORMULA u Excel radnim knjigama, na primjer procijenitiSve, koji će se petljati po svim stanicama i procijeniti ih.

6. Zaključak

U ovom uputstvu pokazali smo kako postaviti formulu na ćeliju u Excel datoteci na Javi pomoću Apache POI API-ja.

Kompletni izvorni kôd za ovaj članakje dostupan na GitHub-u.