2011-12-29 87 views
-2

我的應用程序從db獲取數據並將其寫入excel。我正在使用poi作爲java excel轉換器 寫入時我有一個問題,即只有最後一行正在寫入,它是否可以實現緩衝,因爲大量數據正在傳輸。apache poi只寫最後一行

這裏是代碼

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

爲什麼您的for循環包含i <0;我 Ewald 2011-12-29 08:35:05

回答

1

由於埃瓦爾德說,你的循環是不正確的:

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

我甚至驚訝它編譯。結構爲:

聲明變量;停止循環的條件;增量。

你有兩個條件,沒有增量:最有可能的是,你沒有進入你的循環,你可以通過調試器看到,或者在循環之後放置一個簡單的System.out.println(「在循環中」)對於。

不止這些,但是,你在哪裏增加行? row1從哪裏來?你應該有這樣的東西:

row1 = sheet.getRow(i); 

所以你需要發佈更多的代碼更好的答案。

0

其實,這不是完整的源代碼。 我剛剛粘貼了一部分;對不起,我沒有注意到它在語法上不正確。
我已修復它。 的問題是,在for循環,我用了:

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

所以,每次迭代週期刪除之前寫的行。