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.