为什么我会在一些值上出现 "number stored as text" 错误?

Why do I get the "number stored as text" error on a few values?

我想使用 Apache Poi 在电子表格中创建一些行。为此,我必须格式化数字以满足某些规范

所以我的初始数字是一个双精度数(在字符串中><),就像这个

String initial = "1234.56";

我想以这种格式存储它

String wanted = "1 234";

所以我用这段代码来解析它(而且它工作正常)

wanted = NumberFormat.getNumberInstance(Locale.FRANCE).format(Double.valueOf(initial).intValue())

但是当我创建电子表格并打开它时(使用 excel),我收到此错误 只有 几个值

number stored as text

我尝试使用

来解决它
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,但为了正常工作,您需要插入一个数字,而不是字符串。

cell.setCellValue("12345");  //Will be inserted as 12345. Echec !
cell.setCellValue(Integer.valueOf("12345"));  //Will be inserted as 12 345. Success ;)