cellIterator.hasNext()即使单元格有值也返回false



我使用以下方法从excel (csv)表格中读取数据:

InputStream inputStream = new BufferedInputStream(multipartFile.getInputStream());
XSSFWorkbook myWorkBook = new XSSFWorkbook(inputStream);
List<String> cellList = new ArrayList<>();
XSSFSheet mySheet = myWorkBook.getSheetAt(0);
Iterator<Row> rowIterator = mySheet.iterator();
rowIterator.next();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
cellList.clear();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) { // this returns false even the cell has data 
Cell cell = cellIterator.next();
cellList.add(cell.getStringCellValue());
}
}

我想使cellIterator.hasNext()对空单元格值返回true,如第二行(名称)所示。那么,我该怎么做呢?

Create Date  Uuid                                  Name
2021-09-29   2e81a2b6-3226-4fe0-b8bd-39f42239686d  admin
2021-09-30   610e9040-840c-48c5-aa64-f193ed896133  

不能让cellIterator.hasNext()为空的" name "返回true;细胞。

如果提前知道列数,可以使用循环和row.getCell(index)

for (int i = 0; i < 3; i++) {
Cell cell = row.getCell(i);
cellList.add(cell == null ? "Empty":cell.toString());
}

如果你不这样做,你必须首先扫描你的文件来计算列的数量。