0
我正在使用apache poi从excel文件读取一些单元格,单元格的值是纯数字,例如, 6944460000,即使我格式化单元格为文本,程序一直读取它们为6.9 + EXXXExcel将数字转换为指数形式的文本
if (line.get(0) != null) {
int mpnCellType = line.get(0).getCellType();
switch (mpnCellType) {
case HSSFCell.CELL_TYPE_NUMERIC:
mpn = (String.valueOf(line.get(0).getNumericCellValue()));
break;
case HSSFCell.CELL_TYPE_STRING:
mpn = (line.get(0).getStringCellValue());
break;
}
}
eventhough我检查的细胞类型,我还是得到了指数形式,这意味着在源文件是这种形式在我读之前,我怎么能阻止这种转换?
我不熟悉Apache poi。但是excel在单元格中存储值的方式是“纯数字”。如果可以使用apache poi访问源Excel单元格的.Text属性,那么应该按照格式化它的方式返回值。将Excel单元格的格式更改为文本后,输入数字值不会影响其存储方式。 – 2014-08-31 11:12:23
[excel字段值越来越3.0E9,我需要3000000000时试图解析](可能重复)(http://stackoverflow.com/questions/25397377/values-of-excel-field-is-getting-3-0e9 -where-i-need-3000000000-when-trying-to-pa) – Gagravarr 2014-08-31 14:51:01
你没有正确地将数字转换为字符串。查看大约一百个重复问题中的一个,这些问题都提供了正确的方法来完成它 – Gagravarr 2014-08-31 14:52:23