读取cell类型为CELL_TYPE_FORMULA的值时,无法读出excel中显示的值。

poi读取类型为CELL_TYPE_FORMULA的cell时,cell.getCellFormula()都出来的值是D60&"0001",可是excel中的值为19位数字1056501599839870001,怎么才能读出这19位的数字?

.toString 或者 String.valueOf(cell.getCellFormula())

CELL_TYPE_FORMULA是公式类型,代表这个cell存的是一个公式。用.toString()会报错NoSuchMethodError

CELL_TYPE_FORMULA的cell时 ,取的是计算出来的值,不是取公式,所以不能用cell.getCellFormula()
取计算出来的值,就要判断值的类型,用这个函数cell.getCachedFormulaResultType()

switch (cell.getCachedFormulaResultType()) {
    case STRING:
        cellValue = cell.getStringCellValue();
        break;
    case NUMERIC:
                  NumberFormat nf = NumberFormat.getInstance();
                    nf.setGroupingUsed(false);
        cellValue = String.valueOf(nf.format(cell.getNumericCellValue()));
        break;
    case BOOLEAN:
        cellValue = String.valueOf(cell.getBooleanCellValue());
        break;
    default:
        cellValue = cell.getCellFormula();
    }