Apache POI を使用して値が Java に既に抽出されているため、これは Excel の表示の問題ではありません。しかし、XSSFCell#toString()
が呼び出されると、Apache POI コードは次の式を使用して、タイプのセルをCELL_TYPE_NUMERIC
の文字列に変換しtoString()
ます。
return getNumericCellValue() + "";
このXSSFCell#getNumericCellValue()
メソッドは を返します。double
これを文字列に変換すると、文字列 が生成されます"2.01356229E8"
。は の指数表記表現であるため、これは Java で期待される a から adouble
への変換です。(数学では、表現とは同等です。)String
"2.01356229E8"
201356229
201356229
2.01356229E8
保存先の Oracle データベースの列が の場合は、VARCHAR2
データベースに保存する前に文字列値をフォーマットする必要があります。これは次の場所に保存"201356229"
されid
ます:
DecimalFormat df = new DecimalFormat("#");
id = df.format( ((XSSFCell) cellStoreVector.get(0)).getNumericCellValue() );
列が の場合、NUMBER
最初に文字列に変換する必要はありません。セルの数値を として使用double
して、データベースに渡します。
double numericId = ((XSSFCell) cellStoreVector.get(0)).getNumericCellValue();