用java操作POI的时候,excel写入cell多次循环无法正确写入

木成洲 发布于 2016/08/22 09:03
阅读 1K+
收藏 0

在进行excel操作的时候,嵌套了for循环,发现无法正确写入,这是什么原因?

XSSFWorkbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("result");
for (int i = 0;i< 79;i++){
for(int j= 1;j<4;j++){
sheet.createRow(i).createCell(0).setCellValue("当前i:"+i);
sheet.createRow(i).createCell(j).setCellValue("当前j:"+j);
}
}

FileOutputStream fos = null;
try {  
fos = new FileOutputStream(McUtils.compareResult_str + "C666.xlsx");  
wb.write(fos);        
} catch (IOException e) {  
   System.out.println(e.toString());  
} finally {  
   try {  
   	fos.close();  
   } catch (IOException e) {  
       System.out.println(e.toString());  
   }  
}  




加载中
1
烟雨三月
烟雨三月
for(inti =0;i<79;i++){
  sheet.createRow(i).createCell(0).setCellValue("当前i:"+i);
  for(intj=1;j<4;j++){
    sheet.getRow(i).createCell(j).setCellValue("当前j:"+j);
  }
}




木成洲
木成洲
嗯嗯,是的,谢谢
0
Steve
Steve

你一直在sheet.createRow,每次迭代都创建了新的row,当然没有数据了.

木成洲
木成洲
是……后来我发现了……
0
blackedfish
blackedfish
XSSFRow row = null;
        for (int i = 0; i < 10; i++) {
            row = sheet.createRow(i);
            row.createCell(0).setCellValue("当前i:" + i);
            for (int j = 1; j < 4; j++) {
                row.createCell(j).setCellValue("当前j:" + j);
            }
        }
木成洲
木成洲
感谢~
0
天王盖地虎
天王盖地虎

先createRow再根据创建的row进行createCell,最后set值。

这样即使某行某列创建失败你也能发现问题。。。。。。。

木成洲
木成洲
嗯,是的, 后来我先创建row,再创建cell解决了。然后回头看发现,就跟上面说的,我一直在创建行。感谢~
返回顶部
顶部