Az Excel Cell karakterláncának megszerzése az Apache POI segítségével

1. Áttekintés

Egy Microsoft Excel cellának különböző típusai lehetnek, például karakterlánc, numerikus, logikai és képlet.

Ebben a gyors bemutatóban megmutatjuk, hogyan lehet a cella értékét stringként olvasni - a cellatípustól függetlenül - az Apache POI segítségével.

2. Apache POI

Először is hozzá kell adnunk a poi függőséget a projektünkhöz pom.xml fájl:

 org.apache.poi poi 4.1.1 

Az Apache POI a Munkafüzet felületet egy Excel fájl ábrázolásához. Azt is használja Lap, Sor, és Sejt interfészek az Excel-fájl különböző szintjeinek modellezéséhez. A Sejt szinten használhatjuk getCellType () módszer a sejttípus megszerzéséhez. Az Apache POI a következő cellatípusokat támogatja:

  • ÜRES
  • BOOLAI
  • HIBA
  • KÉPLET
  • NUMERIC
  • HÚR

Ha meg akarjuk jeleníteni az Excel fájl tartalmát a képernyőn, akkor egy nyers érték helyett egy cella karakterlánc ábrázolását szeretnénk megkapni. Ebből kifolyólag, a nem STRING típusú cellák esetében az adataikat karakterlánc-értékekké kell átalakítanunk.

3. Szerezze be a cella karakterlánc értékét

Tudjuk használni DataFormatter lekérni az Excel cellájának karakterláncát. Formázott karakterlánc-ábrázolást kaphat a cellában tárolt értékről. Például, ha egy cella számértéke 1,234, és ennek a cellának a formátumszabálya két tizedespont, akkor a „1.23” karakterlánc-ábrázolást kapjuk:

Cellasejt = // numerikus cella 1,234 értékkel és "0,00" formátumszabályral DataFormatter formatter = új DataFormatter (); String strValue = formatter.formatCellValue (cella); assertEquals ("1,23", strValue);

Ezért az eredménye DataFormatter.formatCellValue () a megjelenítési karakterlánc pontosan úgy, ahogy az Excelben megjelenik.

4. Szerezzen be egy képletcella karakterláncát

Ha a cellatípus FORMULA, akkor az előző módszer a kiszámított képletérték helyett az eredeti képletsorozatot adja vissza. Ebből kifolyólag, hogy megkapjuk a képlet értékének karakterlánc-reprezentációját, használnunk kell FormulaEvaluator a képlet értékeléséhez:

Munkafüzet munkafüzet = // meglévő munkafüzet beállítása FormulaEvaluator értékelő = workbook.getCreationHelper (). CreateFormulaEvaluator (); Cellasejt = // képletcella "SUM (1,2)" értékkel DataFormatter formatter = új DataFormatter (); String strValue = formatter.formatCellValue (cella, kiértékelő); assertEquals ("3", strValue);

Ez a módszer általános minden sejttípusra. Ha a cellatípus FORMULA, akkor a megadott segítségével értékeljük FormulaEvaluator. Ellenkező esetben a karakterlánc reprezentációt értékelések nélkül adjuk vissza.

5. Összefoglalás

Ebben a gyors cikkben bemutattuk, hogyan lehet lekérni az Excel cellák karakterlánc-ábrázolását, annak típusától függetlenül. Mint mindig, a cikk forráskódja elérhető a GitHubon.