Apache POI DataFormatter 返回科学记数法
2022-09-03 04:47:31
我有一个xlsx文件,我正在用java 6中的apache poi 3.17阅读。在一个实例中,我有一个带有值的单元格,123456789011。这被读入java作为NUMTIC CellTypeEnum Cell。当我使用DataFormatter获取单元格的值时,如下所示:
DataFormatter formatter = new DataFormatter(Locale.US);
String strVal = formatter.formatCellValue(cell);
字符串值显示为“1.234567+11”。我需要单元格中的实际值“123456789011”。我怎样才能得到它?
我已经尝试过在Java中使用BigDecimal来转换字符串,但这会返回“123456700000”,因为这是它对给定信息所能做的最好的事情;这意味着我需要从实际的单元格对象中获取正确的值。我也尝试使用cell.getNumericCellValue(),但它返回一个double,其限制太小而无法处理原始值,因此它被检索为“1.234567E11”,这与其他检索方法具有相同的问题。
有没有办法在xlsx中输入原始单元格时将值作为字符串获取?我对原始的xlsx没有权力。
谢谢。