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 を求めてから変換ですね。