我正在从Excel文件中读取数据,我稍后将其放在同一Java程序的MySQL数据库中。 我在向数据库添加数据时遇到问题:Eclipse一直显示NullPointerException错误。 我使用了getLastRowNum(),它还在填充的单元格后计算了一些空单元格。这个代码解决了这个问题(这里我只计算填充单元格的数量并使用它来代替最后一个行号):
int rows = Sname.getLastRowNum();
int rows2 = 0;
for(int kk = 1; kk<= rows; kk++)
{
XSSFRow row = Sname.getRow(kk);
XSSFCell cell = row.getCell(0);
if(cell != null)
{
rows2++;
}
}
上周它有效,但现在我得到了一个java.lang.NullPointerException XSSFCell cell = row.getCell(0);
我不明白为什么。 有人能帮助我吗? 谢谢!
答案 0 :(得分:0)
我认为您的for
应该从0
开始,而不是从1
开始,然后转到rows-1
。
答案 1 :(得分:0)
Sname.getLastRowNum();
或Sname.getRow(kk)
投掷NPE。确保您已初始化Sname
另请查看你的for循环:
for(int kk = 1; kk&lt; = rows; k ++)
这甚至可以编译吗?如果是,请将'k++'
替换为'kk++'
,否则您最终会进行无限次迭代。
答案 2 :(得分:0)
我认为问题在于循环的限制。它应该转到kk < rows
而不是kk <= rows
。
事实上,在测试此解决方案之前,我会尝试记录Sname.getLastRowNum()
的值并观察其具有的值。