Java 爪哇及;Excel:读取的值错误
我正在解析excel文件中的数据,并使用Java 爪哇及;Excel:读取的值错误,java,excel,parsing,apache-poi,Java,Excel,Parsing,Apache Poi,我正在解析excel文件中的数据,并使用HSSFCell将其添加到数据库中。要解析excel文件,我将使用以下代码读取该文件 public void printCellDataToConsole(Vector dataHolder) throws SQLException { // this is for the rows in the file, set to one to skip the headings List<String>
HSSFCell
将其添加到数据库中。要解析excel文件,我将使用以下代码读取该文件
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.11223361x(10^8)
,所以111223361=1.11223361E8
如果您想将其格式化,请使用Double.valueOf(“1.11223361E8”).longValue()
1.11223361E8
表示1.11223361x(10^8)
,因此111223361=1.11223361E8
如果要使其格式正确,请使用Double.valueOf(“1.11223361E8”).longValue()尝试使用:
cellValueLong = Long.valueOf(myCell.toString());
几周前我自己也面临同样的问题。之所以会发生这种情况,是因为您作为字符串附加的数字是以科学记数法格式提供的。因为它是一个字符串,而不是长/int/(无论什么),所以它以该格式返回该数字的字符串值。尝试使用:
cellValueLong = Long.valueOf(myCell.toString());
几周前我自己也面临同样的问题。之所以会发生这种情况,是因为您作为字符串附加的数字是以科学记数法格式提供的。因为它是一个字符串,而不是长/int/(无论什么),所以它以该格式返回该数字的字符串值。用于从excel工作表中获取值。这是最好的解决方案。它可能有助于
用于从excel工作表中获取值。这是最好的解决方案。它可能会帮助您
因为我也对从Excel文件中读取值感兴趣,所以您使用什么框架来执行此操作?我猜是POI,因为提到了HSSFCell。我推荐Andy Khan的Jetcel而不是POI。@记者:我用
POI-3.8-20120326.jar
解析excel文件,你还想知道什么吗?@duffymo:Jetcel支持新的数据格式吗?提到JExel不支持新版本。(可能是需要一个tweek的答案)因为我也对从Excel文件中读取值感兴趣,所以您使用什么框架来执行此操作?POI是我的猜测,因为提到了HSSFCell。我推荐Andy Khan的Jetcel而不是POI。@记者:我用POI-3.8-20120326.jar
解析excel文件,你还想知道什么吗?@duffymo:Jetcel支持新的数据格式吗?提到JExel不支持新版本。(答案可能需要一个tweek)我尝试了此操作,但myCell.Value提供了以下内容:找不到符号符号:变量值位置:类型为org.apache.poi.hssf.usermodel.HSSFCellI的变量myCell尝试了此操作,但myCell.Value提供了以下内容:找不到符号符号符号:变量值位置:类型为org.apache.poi.hssf.usermodel.HSSFCellyes的变量myCell这解决了问题,并感谢您解释为什么数字以其格式出现:)是的,这解决了问题,感谢您解释为什么数字以其格式出现:)