为什么我会在一些值上出现 "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 ;)
我想使用 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 ;)