Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将逗号分隔的浮点值插入Excel?_Java_Excel_Apache Poi - Fatal编程技术网

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

Java 如何将逗号分隔的浮点值插入Excel?,java,excel,apache-poi,Java,Excel,Apache Poi,再次向大家问好:) 我有一个包含各种数据的字符串数组列表。它由数字、十进制数、简单字符串等组成(但它们都存储为字符串) 问题是,从一段时间以来,我一直使用POI库将这些文件作为字符串存储在Excel文件中,代码如下: cell.setCellValue(listOfResults.get(iterationNumber)); 现在我不得不面对另一个问题。此ArrayList的结果有时是格式为*、*或整数的浮点数,如您所见,浮点数用逗号分隔,即: 0 1 1,23 213,23899 对于上

再次向大家问好:)

我有一个包含各种数据的字符串数组列表。它由数字、十进制数、简单字符串等组成(但它们都存储为字符串)

问题是,从一段时间以来,我一直使用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" 
我知道问题与这个逗号值有关。 请在这两个方面给我一个提示:

一,

如何正确地设置它,使其能够为我的示例数据[“0”、“1”、“1,23”、“2131223999”]工作,等等

二,

如何正确解析内部带有“,”的浮点。我尝试过使用DecimalFormatSymbols,但它不能像我希望的那样使用POI


提前多谢

我认为您可以将逗号格式的浮点作为字符串写入excel文件。为此,您需要:

cell.setCellValue(listOfResults.get(iteration));
如果你实习使用单元格值作为数值进行进一步的计算,那么我认为你只需要将字符串数字转换成浮点数

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

你想用逗号保存它吗?是的,我想用逗号保存它。(excel文件使用逗号作为十进制格式符号)也许我没有答对这个问题,但是如果你能确保你的字符串值总是像你提供的那样,就这样测试它:
cell.setCellValue(Float.parseFloat(listOfResults.get(iteration)。replace(“,”,“);
Patrick,你说得对,我知道这是可能的。问题是,在Excel文件中,我存储为2729123(逗号)的值将存储为2.729123(点)。我的目标是保存27291123(逗号)在一个Excel文件中,使用这个特定单元格的数字样式。我想为一个单元格添加多个值,比如a1应该有值(abc、def、ert)。我正在用java来使用apache POI。你能帮我提供一些建议吗?我完全同意你的看法。问题是,在我的Excel工作表中的LocalZone中,我们使用逗号而不是点作为分隔符。因此,数字中的所有点都必须是逗号才能进行进一步的计算。
cell.setCellValue(listOfResults.get(iteration));
float value = Float.parseFloat(listOfResults.get(iteration).replace(",", "."));
cell.setCellValue(value);