如何将用逗号分隔的浮点值插入Excel?

时间:2016-02-09 10:05:06

标签: java excel apache-poi

再次向大家问好:)

我有一个包含各种数据的字符串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那样工作。

提前多多感谢!

1 个答案:

答案 0 :(得分:0)

我认为您可以将逗号格式化的浮点数作为字符串写入excel文件中。为此你做了:

cell.setCellValue(listOfResults.get(iteration));

如果您实习使用单元格值作为数值进行进一步计算,那么我认为您只需将字符串数转换为浮点数。

float value = Float.parseFloat(listOfResults.get(iteration).replace(",", "."));
cell.setCellValue(value);