Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从excel XSSFCell cell=row.getCell(j)读取时获取空指针异常java;_Java_Apache Poi - Fatal编程技术网

从excel XSSFCell cell=row.getCell(j)读取时获取空指针异常java;

从excel XSSFCell cell=row.getCell(j)读取时获取空指针异常java;,java,apache-poi,Java,Apache Poi,获取错误:不支持此类型的单元格 我从输入的excel文件中删除了两行数据,然后在它正常工作之前就开始了。但是现在我已经完全删除了这些行,问题是如果没有数据,XSSFCell将null。检查是否为null。调用cellToString()方法后 public void InterestedParty() throws InterruptedException { try { readFile(); } catch (IOException e1) { } }

获取错误:不支持此类型的单元格
我从输入的excel文件中删除了两行数据,然后在它正常工作之前就开始了。但是现在我已经完全删除了这些行,问题是如果没有数据,
XSSFCell
null
。检查是否为
null
。调用
cellToString()
方法后

public void InterestedParty() throws InterruptedException {
    try {
        readFile();
    } catch (IOException e1) {
    }
}

您可以有一个包含数据的行,接下来是一个空行,然后是另一个包含数据的行。如果未定义中间行,则可以将其视为null,因此我的建议是对这些行使用迭代器。
这是一个好的开始。
此外,一旦获得了行,就可以使用单元迭代器对单元进行迭代。请记住,未定义的单元格将被视为null并被跳过,但空单元格不是null!
医生来了。

您的方法也很好,但在处理对象之前,您需要在每次迭代中检查空值或空值。

您从哪里获得NPE?。。在哪一行??单元格对象可以为空。我想你可以在cellToString获得npe。你是在那里还是在第行清楚地看到它。getCell(j)一个真正的stacktrace会很有帮助。@paul.cioroianu-他的工作表、书本、行、单元格等可能是空的。@TheLostMind-工作簿和工作表都不是空的。根据他在这里得到的错误XSSFCell cell=row.getCell(j),只有单元格或行可以为null;而且,在调用getCell(j)之前,他必须检查行是否为null。他也可以得到一个空行
public void InterestedParty() throws InterruptedException {
    try {
        readFile();
    } catch (IOException e1) {
    }
}
    XSSFCell cell = row.getCell(j);
    if(cell != null) {
        data[i][j] = cellToString(cell);
    } else {
        // if you would like to set value when cell is null
        row.createCell(j).setCellValue(your value);
    }