当前位置: 首页 > 知识库问答 >
问题:

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

百里鸿祯
2023-03-14
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());
    }
}
Create Date  Uuid                                  Name
2021-09-29   2e81a2b6-3226-4fe0-b8bd-39f42239686d  admin
2021-09-30   610e9040-840c-48c5-aa64-f193ed896133  

共有1个答案

岑鸣
2023-03-14

对于空的“name”单元格,不能使celliterator.hasnext()返回true。

如果预先知道列的数量,则可以使用循环和row.getcell(index)

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

如果没有,则必须首先扫描文件以计算列数。

 类似资料:
  • 问题内容: 我有这种简单的查询,它返回给定id的非空整数字段: 问题是,如果找不到ID,则结果集为空。我需要查询始终返回一个值,即使没有结果也是如此。 我有这个东西工作,但我不喜欢它,因为它运行相同子查询的2倍: 如果该行存在,则返回field1,否则返回0。有什么改进的方法吗? 谢谢! 编辑以下一些评论和答案 :是的,它必须在 单个查询语句中, 并且我不能使用count技巧,因为 我只需要返回1

  • 问题内容: 我需要为JTree使用自定义单元格渲染器,以便在每个单元格上添加一些JLabel。然后允许用户单击这些标签,而无需先选择单元格。 因此,我创建了一个Renderer,它返回一个包含DefaultTreeCellRenderer和2 JLabel的JPanel。 然后,我创建了编辑器,以允许用户通过MouseListener来单击这些标签。一切工作正常,除了用户必须在单击标签之前选择单元

  • 问题内容: 我正在尝试使用getElementById()获取元素,但是即使元素存在,它也会返回null。我究竟做错了什么? 问题答案: 您必须将其放在一个 事件中。脚本执行时尚未到达DOM 。

  • 这是我的表类 如果((布尔)model.getValueat(r,3)==true){col.setpk(true);} 它给出错误,因为返回类型是布尔型。

  • 我想写一个excel公式,它可以让我从表2中找到表1的一列值,然后返回表2中的单元格引用, 谢谢,

  • 问题内容: 我当前正在编写一个脚本,该脚本必须检查所有指定的文件夹是否实际存在。我发现我必须将os.path.isdir()与绝对路径一起使用。 我有以下目录结构: 当我打开op我的python命令行并尝试文件夹是否确实存在时,我得到以下信息: 这很奇怪,因为当我将这些路径复制并粘贴到Windows资源管理器中时,我可以毫无问题地访问它们。我检查了权限,所有文件夹都具有相同的权限。有人知道我在做什