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"2013562292013562292.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();