Java和Excel:值被读取错误

我parsing从Excel文件中的数据,并将其添加到我的数据库使用HSSFCellparsingExcel文件,我使用下面的代码来读取文件

 public void printCellDataToConsole(Vector dataHolder) throws SQLException { // this is for the rows in the file, set to one to skip the headings List<String> studentInformation = new ArrayList<>(); for (int i = 1; i < dataHolder.size(); i++) { Vector cellStoreVector = (Vector) dataHolder.elementAt(i); // this is for the colums in the table for (int j = 0; j < cellStoreVector.size(); j++) { HSSFCell myCell = (HSSFCell) cellStoreVector.elementAt(j); String stringCellValue = myCell.toString(); System.out.print(stringCellValue + "\t"); } connectToDatabase.ammendTableInDatabase("INSERT INTO Student VALUES (" + cellStoreVector.get(0) + ",'" + cellStoreVector.get(1) + "','" + cellStoreVector.get(2) + "','" + cellStoreVector.get(3) + "','" + cellStoreVector.get(4) + "'," + cellStoreVector.get(5) + ",'" + cellStoreVector.get(6) + "')"); System.out.println(); } } 

一切正常,但当我尝试读取任何值如下

 111223361 111223362 111223364 111223363 111223366 

它读取它们如下

 1.11223361E8 1.11223362E8 1.11223364E8 1.11223363E8 1.11223366E8 

为什么会发生这种情况,我该如何解决?

1.11223361E8意思是1.11223361 x (10 ^ 8) ,所以111223361 = 1.11223361E8

如果你想得到它的格式 ,请使用Double.valueOf("1.11223361E8").longValue()

尝试使用:

 cellValueLong = Long.valueOf(myCell.toString()); 

几个星期前我也面临同样的问题。 发生这种情况是因为您以stringforms提取的数字以科学记数法格式显示。 既然你把它作为一个string,而不是一个长/ int /(无论),它返回该格式的数字的string值。

从excel sheet.this得到价值是最好的解决scheme。它可以帮助你。

https://stackoverflow.com/a/12067137/1211000