再次向大家问好:)
我有一个包含各种数据的字符串ArrayList。它充满了数字,十进制数字,简单字符串等等(但所有这些都存储为字符串)。
问题是,有一段时间以来我一直使用POI库将这些文件作为字符串存储在Excel文件中,代码如下:
cell.setCellValue(listOfResults.get(iterationNumber));
现在我不得不面对另一个问题。有时这个ArrayList的结果是浮点数,格式为*,*或整数,正如你所看到的,浮点数用逗号分隔,即:
0
1
1,23
213,23899
对于上述数据,我必须将cellType设置为NUMERIC(不像以前那样)。所以我试着用这个:
CellStyle style = wb.createCellStyle();
style.setDataFormat(HSSFDataFormat.getBuiltinFormat("0,00"));
cell.setCellStyle(style);
cell.setCellValue(Float.parseFloat(listOfResults.get(iteration)));
//after this I have a negative output with the following Exception
java.lang.NumberFormatException: For input string: "2,26776"
我知道问题与此逗号值有关。 所以请在这两个方面给我一个提示:
1
HSSFDataFormat.getBuiltinFormat("0,00")
如何正确设置它应该适用于我的示例数据[" 0"," 1"," 1,23",&#34 ; 21312,23999"]等等一个
2
cell.setCellValue(Float.parseFloat(listOfResults.get(iteration)))
如何使用","正确解析浮动内。我尝试过使用DecimalFormatSymbols,但它并不像我想要的POI那样工作。
提前多多感谢!
答案 0 :(得分:0)
我认为您可以将逗号格式化的浮点数作为字符串写入excel文件中。为此你做了:
cell.setCellValue(listOfResults.get(iteration));
如果您实习使用单元格值作为数值进行进一步计算,那么我认为您只需将字符串数转换为浮点数。
float value = Float.parseFloat(listOfResults.get(iteration).replace(",", "."));
cell.setCellValue(value);