Java Apache POI仅将最后一个单元格保存到新创建的文件中

Java Apache POI仅将最后一个单元格保存到新创建的文件中,java,Java,因此,我从excel文件中的工作表中的选定单元格中提取数据,然后尝试将其写入另一个文件。数据在vatAdata数组中被很好地传输,从我所知,它被写入for循环中的单元格,因为它在插入到后打印出每个单元格(仅用于调试目的)。但当我稍后打开文件时,只有最后一个单元格中有数据,而所有其他单元格都为空。知道是什么导致了这个问题吗 for(int i=0;i<vatAdata.length;i++){ Cell cellInsert=sheet.createRow(rowIndex)

因此,我从excel文件中的工作表中的选定单元格中提取数据,然后尝试将其写入另一个文件。数据在vatAdata数组中被很好地传输,从我所知,它被写入for循环中的单元格,因为它在插入到后打印出每个单元格(仅用于调试目的)。但当我稍后打开文件时,只有最后一个单元格中有数据,而所有其他单元格都为空。知道是什么导致了这个问题吗

for(int i=0;i<vatAdata.length;i++){
        Cell cellInsert=sheet.createRow(rowIndex).createCell(colIndex+i);
        cellInsert.setCellType(vatAtype[i]);
    //  System.out.println(cellInsert.);
        if(vatAtype[i]==0){
            cellInsert.setCellValue(Double.parseDouble(vatAdata[i]));
            System.out.println(cellInsert.getNumericCellValue()+" written");
        }
        else{
            cellInsert.setCellValue(vatAdata[i]);
            System.out.println(cellInsert.getStringCellValue()+" written");
        }
    }

    FileOutputStream out=new FileOutputStream("/home/chris/Documents/test.xlsx");
    wb.write(out);
    out.close();
for(int i=0;i
您需要将新行值保存到变量以重用它

row = sheet.createRow(rowIndex);
cellInsert = row.createCell(colIndex+i);

非常感谢你马上解决了这个问题,当我一读到它,我就想…哦,是的,重现这一行很糟糕
row = sheet.createRow(rowIndex);
cellInsert = row.createCell(colIndex+i);