从xlsx文件读取时出现NullPointerException

时间:2013-11-21 12:19:33

标签: java mysql excel nullpointerexception

我正在从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);

我不明白为什么。 有人能帮助我吗? 谢谢!

3 个答案:

答案 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()的值并观察其具有的值。