我想使用Apache Poi在电子表格中创建一些行。为此,我必须格式化数字以满足某些规范
所以我的初始数字是一个double(在String><中),就像这个
String initial = "1234.56";
我希望以这种格式存储它
String wanted = "1 234";
所以我使用这段代码来解析它(它工作正常)
wanted = NumberFormat.getNumberInstance(Locale.FRANCE).format(Double.valueOf(initial).intValue())
但是当我创建电子表格并打开它(使用excel)时,我收到此错误仅一些值
以文字形式存储的号码
我尝试使用
解决它cell.setCellType(Cell.CELL_TYPE_NUMERIC);
但它不起作用。
奇怪的是,这个错误不在所有值上(所有值都来自同一个函数)。请参阅此屏幕截图,例如
我做错了什么吗?我错过了什么 ?有人有想法解决它吗?
答案 0 :(得分:2)
使用
解决问题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 ;)