如何使用poi从Excel工作表中检索百分比类型值

Nan*_*ndu 5 java excel apache-poi

我正在尝试使用Apache POI读取单元格值excel表.我的一张纸包含百分比类型作为单元格类型.当我使用cell.getNumbericValue()使用POI读取该单元格时,它返回double值.如果单元格包含11.24%,则返回0.1124.我的问题是,我想从单元格中读取%符号,即我想读取单元格中的确切数据为11.24%.所以,我尝试使用cell.toString(),即使这样它返回的值与上面相同.任何人都可以建议我,如何摆脱这个问题.在此先感谢Nandu

Wee*_*and 12

您可以通过测试单元格数据格式字符串来检测单元格是否格式化为百分比:

if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
    if (cell.getCellStyle().getDataFormatString().contains("%")) {
        // Detect Percent Values 
        Double value = cell.getNumericCellValue() * 100;
        System.out.println("Percent value found = " + value.toString() +"%");
    } else {
        Double value = cell.getNumericCellValue();
        System.out.println("Non percent value found = " + value.toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

这应该使您能够区分格式化百分比值和普通数值.


Gag*_*arr 1

11.24% 是 0.1124,这就是为什么它存储在文件中,这就是当您询问数值时得到的结果

POI 提供了一个实用程序,用于根据应用于单元格的格式规则格式化数字字符串,即DataFormatter。如果您使用它来设置单元格格式,您将返回一个字符串,其中包含单元格内容,大致如 Excel 中所示。