Excel 指数表記と Apache POI

Excel で、8桁を超える数値を指数表記ではなく、そのまま8桁で格納、
これを Apache POI で読み込むと、
org.apache.poi.ss.usermodel.Cell は、
toString() では、指数表記になる。
  10000000 → 1.0E7

つまり、double 型を toString() した場合と同じ。

Apache POI では、数値は全て CellType は、NUMERIC
getNumericCellValue() メソッドで double として読み込むしかない。

8桁以上の数値を指数表記でない文字列表記したければ、一旦変換するしかない。
以下 cell は、読み込んだ org.apache.poi.ss.usermodel.Cell であるとして、

int n = Double.valueOf(cell.getNumericCellValue()).intValue();
long l = Double.valueOf(cell.getNumericCellValue()).longValue();
BigInteger bi = BigDecimal.valueOf(cell.getNumericCellValue()).toBigInteger();

BigInteger は、BigDecimal を求めてから変換ですね。