Nabavite niz vrijednost Excel ćelije s Apache POI

1. Pregled

Microsoft Excel ćelija može imati različite vrste poput niza, numeričke, logičke vrijednosti i formule.

U ovom brzom vodiču pokazat ćemo kako čitati vrijednost ćelije kao niz - bez obzira na vrstu ćelije - s Apache POI.

2. Apache POI

Za početak prvo trebamo dodati poi ovisnost našem projektu pom.xml datoteka:

 org.apache.poi poi 4.1.1 

Apache POI koristi Radna bilježnica sučelje za predstavljanje Excel datoteke. Također koristi List, Red, i Ćelija sučelja za modeliranje različitih razina elemenata u Excel datoteci. Na Ćelija razinu, možemo koristiti njegovu getCellType () metoda za dobivanje tipa stanice. Apache POI podržava sljedeće tipove stanica:

  • PRAZAN
  • BOOLEAN
  • POGREŠKA
  • FORMULA
  • NUMERIČKI
  • NIZ

Ako želimo prikazati sadržaj datoteke Excel na zaslonu, željeli bismo dobiti niz podataka ćelije, umjesto njene neobrađene vrijednosti. Stoga, za stanice koje nisu tipa STRING, moramo pretvoriti njihove podatke u vrijednosti niza.

3. Dobijte vrijednost niza ćelije

Možemo koristiti DataFormatter za dohvaćanje vrijednosti niza Excel ćelije. Može dobiti formatirani niz vrijednosti vrijednosti pohranjene u ćeliji. Na primjer, ako je numerička vrijednost ćelije 1,234, a pravilo formata ove ćelije dvije decimale, dobit ćemo prikaz niza "1,23":

Ćelija ćelije = // numerička ćelija s vrijednošću 1,234 i pravilom formata "0,00" DataFormatter formatter = novi DataFormatter (); Niz strValue = formatter.formatCellValue (ćelija); assertEquals ("1,23", strValue);

Stoga je rezultat DataFormatter.formatCellValue () je niz za prikaz točno onakav kakav se pojavljuje u Excelu.

4. Dobijte vrijednost niza ćelije formule

Ako je vrsta ćelije FORMULA, prethodna metoda vratit će izvorni niz formule, umjesto izračunate vrijednosti formule. Stoga, da bismo dobili nizni prikaz vrijednosti formule, trebamo koristiti Procjenitelj formule za procjenu formule:

Radna sveska radne knjige = // postojeća postavka radne knjige FormulaEvaluator evaluator = workbook.getCreationHelper (). CreateFormulaEvaluator (); Ćelija ćelije = // ćelija formule s vrijednošću "SUM (1,2)" DataFormatter formatter = novi DataFormatter (); Niz strValue = formatter.formatCellValue (ćelija, evaluator); assertEquals ("3", strValue);

Ova metoda je općenita za sve tipove stanica. Ako je vrsta ćelije FORMULA, procijenit ćemo je pomoću dane Procjenitelj formule. U suprotnom, vratit ćemo prikaz niza bez ikakvih procjena.

5. Sažetak

U ovom smo kratkom članku pokazali kako dobiti niz nizova Excel ćelije, bez obzira na njen tip. Kao i uvijek, izvorni kôd članka dostupan je na GitHubu.