我有一个从 java 程序中读取 excel 表的程序。
我正在迭代单元格,如下所示:
Iterator cells = row.cellIterator();
String temp;
StringBuilder sb;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
while (cells.hasNext()) {
Cell cell = (Cell) cells.next();
temp = null;
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
temp = cell.getRichStringCellValue().getString();
break;
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
temp = sdf.format(cell.getDateCellValue());
} else {
temp = df.format(new BigDecimal(cell.getNumericCellValue()));
}
break;
default:
}
if (temp == null || temp.equalsIgnoreCase("null")) {
sb.append("").append(";");
} else {
sb.append(temp).append(";");
}
}
如所见,我正在尝试创建一个字符串构建器,其中包含以分号分隔的 excel 行中的值。
问题是,如果列值为空,我希望它在字符串生成器中作为一个空值,并带有两个连续的分号。
然而,调用
单元格 = (Cell) cells.next();
只是忽略空单元格并跳转到下一个非空单元格。
所以这条线
if (temp == null || temp.equalsIgnoreCase("null"))
从来没有遇到过。
如何在迭代器中处理空列值?