POI的setCellType()方法过时的解决方案

之前在网上查到Poi获取字符格式时,是用这个方式解决

                cell.setCellType(CellType.STRING);

但现在提示这个方法过时了,

通过查看源码,发现源码上提示

If what you want to do is get a String value for your numeric cell, stop! This is not the way to do it. Instead, for fetching the string value of a numeric or boolean or date cell, use DataFormatter instead.

因此 ,如下方法即可获得字符串

 DataFormatter formatter = new DataFormatter();
 String formatCellValue = formatter.formatCellValue(cell);

但cell的数据格式可能不为string,因此可写通用方法通过判断cell类型获取字符串 

private String getCellStringVal(Cell cell) {
        CellType cellType = cell.getCellTypeEnum();
        switch (cellType) {
            case NUMERIC:
                return cell.getStringCellValue();
            case STRING:
                return cell.getStringCellValue();
            case BOOLEAN:
                return String.valueOf(cell.getBooleanCellValue());
            case FORMULA:
                return cell.getCellFormula();
            case BLANK:
                return "";
            case ERROR:
                return String.valueOf(cell.getErrorCellValue());
            default:
                return StringUtils.EMPTY;
        }
    }

猜你喜欢

转载自blog.csdn.net/qq_25484769/article/details/121822258