apache poi只写了最后一行

时间:2011-12-29 07:55:19

标签: java apache-poi

我的应用程序从db获取数据并将其写入excel。我使用poi作为java excel转换器 写作的时候我遇到的问题是只写了最后一行,可能是缓冲的问题,因为正在传输大量的数据。

这是代码

for(int i=0; i<0;i<workorderlist.size;i++) {      
     //cargo start
     if(null!=workordervolist.get(i).getCargo()){
        String cargo = workordervolist.get(i).getCargo();
        cell = row1.createCell(15);
        cell.setCellStyle(nonEditable);
        cell.setCellValue(cargo);
        if(cargo.length()> colLenght[15]-2)
            colLenght[15] = cargo.length()+2;
      }
      //cargo end
}

2 个答案:

答案 0 :(得分:1)

正如Ewald所说,你的循环不正确:

for(int i=0; i<0;i<workorderlist.size;i++) 

我甚至惊讶它编译。 for结构是:

变量声明;停止循环的条件;递增。

你有两个条件,没有增加:很可能,你没有进入你的循环,你可以通过使用调试器或在for之后放一个简单的System.out.println(“在循环中”)看到

但是,不仅如此,你在哪里增加行? row1来自哪里?你应该有类似的东西:

row1 = sheet.getRow(i);

因此,您需要发布更多代码才能获得更好的答案。

答案 1 :(得分:0)

实际上,这不是完整的源代码。 我只是贴了一部分;对不起,我没注意到它在语法上是不正确的 我修好了。 问题是,在for循环中,我曾使用过:

row = sheet.createRow(i);
row1= sheet.createRow(i+1);

因此,每个迭代周期都删除了之前写的行。