为什么在几个值上得到“存储为文本的数字”错误?

我想使用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 ;)