Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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
Java 从xlsx文件读取时出现NullPointerException_Java_Mysql_Excel_Nullpointerexception - Fatal编程技术网

Java 从xlsx文件读取时出现NullPointerException

Java 从xlsx文件读取时出现NullPointerException,java,mysql,excel,nullpointerexception,Java,Mysql,Excel,Nullpointerexception,我从Excel文件中读取数据,稍后我将其放入同一Java程序中的MySQL数据库中。 我在向数据库添加数据时遇到问题:Eclipse一直显示NullPointerException错误。 我使用了getLastRowNum(),它还计算了填充单元格之后的一些空单元格。此代码修复了此问题(这里我只计算填充单元格的数量,并使用此代码而不是最后一行编号): int rows=Sname.getLastRowNum(); int rows2=0; 对于(int kk=1;kk我认为你的for应该从0开始

我从Excel文件中读取数据,稍后我将其放入同一Java程序中的MySQL数据库中。 我在向数据库添加数据时遇到问题:Eclipse一直显示NullPointerException错误。 我使用了getLastRowNum(),它还计算了填充单元格之后的一些空单元格。此代码修复了此问题(这里我只计算填充单元格的数量,并使用此代码而不是最后一行编号):

int rows=Sname.getLastRowNum();
int rows2=0;

对于(int kk=1;kk我认为你的
for
应该从
0
开始,而不是从
1
开始,然后转到
rows-1
或者
Sname.getLastRowNum();
或者
Sname.getRow(kk)
正在抛出NPE。确保你已经初始化
Sname

还可以查看for循环:


for(int kk=1;kk我认为问题在于循环的极限。它应该转到
kk
而不是
kk,我认为您提供的代码将保持在一个无止境的循环中,因为
kk
变量不会沿着for循环更新。这是实际的代码吗?kk不会在for循环结束时更新吗?for中的“k++”(int kk=1;kNo。你有
int kk=1;kk哦,是的,在我的程序中它说kk,我在这里输入错误,对不起。我有kk的错误,我现在将更改它。如果我将行更改为100,我不会得到NPEYes,我知道这一点。我从第1行开始,因为第0行包含每个列的滴度,对于
kk=rows
,它不会返回
null
?C因为如果它在这里出现,你就可以得到你的
NPE
。即使我把kkWell放进去,如果你的工作表中没有空行,这可能是一个问题,你可以尝试调试程序。你肯定会找到问题的根源。“k”输入错误,在程序中它说“kk”。XSSFSheet Sname=workbook.getSheetAt(0);-->这就是我初始化Sname的方法,它可以打印出最后一行的编号,因此那里没有空值。我如何查看Sname.getRow(kk)是否抛出NPE,以及如何修复此问题?在这种情况下,对Sname调用的两个方法之一必须返回空值或抛出NPE。
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++;
  }
}