我的应用程序从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
}
答案 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);
因此,每个迭代周期都删除了之前写的行。