为什么在几个值上得到“存储为文本的数字”错误?
我想使用Apache Poi在电子表格中创build一些行。 要做到这一点,我必须格式化数字,以符合一些规格
所以我最初的号码是一个双倍(在一个string> <)像这个
String initial = "1234.56";
我想以这种格式存储它
String wanted = "1 234";
所以我使用这个代码来parsing它(它工作正常)
wanted = NumberFormat.getNumberInstance(Locale.FRANCE).format(Double.valueOf(initial).intValue())
但是,当我创build电子表格,并打开它(与Excel),我得到这个错误只有几个值
号码存储为文本
我试图解决它使用
cell.setCellType(Cell.CELL_TYPE_NUMERIC);
但它没有工作。
奇怪的是,这个错误不是所有的值(所有的值都来自同一个函数)。 例如,看这个屏幕截图
我做错什么了吗 ? 我错过了什么 ? 有人有想法解决它吗?
问题解决使用
HSSFCellStyle style = workbook.createCellStyle(); style.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0"));
和
int value = Double.valueOf(initial).intValue(); cell.setCellValue(value);
我已经尝试使用此DataFormat,但为了工作,您需要插入一个数字,而不是一个string。
cell.setCellValue("12345"); //Will be inserted as 12345. Echec ! cell.setCellValue(Integer.valueOf("12345")); //Will be inserted as 12 345. Success ;)