Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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
Excel Apache POI读取带%符号的单元格_Excel_Apache Poi - Fatal编程技术网

Excel Apache POI读取带%符号的单元格

Excel Apache POI读取带%符号的单元格,excel,apache-poi,Excel,Apache Poi,我可以读取带有%符号的单元格吗?如果Excel单元格中有105%,POI告诉我必须将其读取为一个数字(这很好)。这样做会给我1.0d。我希望得到105或1.05d。可能在Excel中,您将1.05格式化为百分比,从而使其显示为105%。如果POI没有给你1.05。。。可能您正在显示四舍五入到小数点后一位的数字?当Excel将105%放入单元格时,它实际存储的是数字(浮点)值1.05以及格式字符串 当您要求POI提供单元格的值时,它将提供Excel为您编写的值,例如1.05 POI还有一些类,它们

我可以读取带有%符号的单元格吗?如果Excel单元格中有105%,POI告诉我必须将其读取为一个数字(这很好)。这样做会给我1.0d。我希望得到105或1.05d。

可能在Excel中,您将1.05格式化为百分比,从而使其显示为105%。如果POI没有给你1.05。。。可能您正在显示四舍五入到小数点后一位的数字?

当Excel将105%放入单元格时,它实际存储的是数字(浮点)值1.05以及格式字符串

当您要求POI提供单元格的值时,它将提供Excel为您编写的值,例如1.05

POI还有一些类,它们尝试根据应用于单元格的格式化字符串对单元格进行格式化,以返回Excel中显示的字符串值(或至少非常接近该值)。要做到这一点的班级是

在代码方面,您可能需要以下内容:

// Create a formatter, do this once
DataFormatter formatter = new DataFormatter(Locale.US);

.....

for(Cell cell : row) {
    CellReference ref = new CellReference(cell);
    // eg "The value of B12 is 12.4%"
    System.out.println("The value of " + ref.formatAsString() + " is " + formatter.formatCellValue(cell));
}

这是excel中包含105%的单元格A1,存储为1.05,将打印“A1的值为105%”

对不起,太吵了。我的循环计数器出错,我一直得到同一个单元格的值。