如何在Java中读取具有空值的Excel单元格?

Ven*_*kat 7 java apache excel apache-poi

我正在使用Apache POI 3.6.我有一个空白的专栏.我希望能够阅读它,然后转到下一栏.即使我能解决 NullPointerException问题,我也无法进入下一个细胞.

这是我的代码片段:

HSSFCell cell = row.getCell(c);
String value = null;

switch (cell.getCellType()) {

    case HSSFCell.CELL_TYPE_FORMULA:
        value = "FORMULA value=" + cell.getCellFormula();
        break;

    case HSSFCell.CELL_TYPE_NUMERIC:
        value = "NUMERIC value=" + cell.getNumericCellValue();
        break;

    case HSSFCell.CELL_TYPE_STRING:
        value = "STRING value=" + cell.getStringCellValue();
        break;

    case HSSFCell.CELL_TYPE_BLANK:
        value="";
        break;

    case HSSFCell.CELL_TYPE_ERROR:
        value="error";
        break;

    default:
        break;
}

System.out.println("CELL col=" + cell.getColumnIndex() + " VALUE=" + value);
Run Code Online (Sandbox Code Playgroud)

我该如何解决我的问题?

Ven*_*kat 11

我终于得到了我想要的东西.我感谢mezmo.我想分享要更改的确切代码段.只需更换以下行:

HSSFCell cell = row.getCell(c);
Run Code Online (Sandbox Code Playgroud)

HSSFCell cell=row.getCell(c, org.apache.poi.ss.usermodel.Row.CREATE_NULL_AS_BLANK );
Run Code Online (Sandbox Code Playgroud)


mez*_*zmo 5

好吧,您可以在switch语句之前检查null,或者您可以更改对row.getCell的调用.检查JAVadoc的POI有两种形式,第一种是你正在使用的形式,第二种是另外一个参数,类型为Row.MissingCellPolicy,你可以传递一个值,将空单元格自动转换为空白.