2016-03-23 28 views
0

Ben excel oluşturmak için poi 3.12 kullandım ve açık bir şekilde 30000 satır oluşturuldu, ancak oluşturulan excel açın, yalnızca 27239 satır var ve hiçbir hata çıktısı olan bir fenomen bulundu. Bu yüzden poi varsayılan bir maksimum satır numarası - 27239 ayarlamış görünüyor. Ancak, kaynak kodunu denedim, maksimum satır gibi bir değişken bulamıyorum. Kod, bu nasıl olur?poi, örtük bir maksimum satır sayısı vardır

+1

Excel olduğunu '.xls' dosyaları [64k (2^16) satırlar] (https://poi.apache.org/apidocs/org/ ile sınırlıdır apache/poi/ss/SpreadsheetVersion.html # EXCEL97), tek sınır POI zorlamasıdır ve bu bir dosya formatıdır. Yani, herhangi bir hata kodunuzda olmalı ve üretim kodunu görmeden, yardım etmek için yapabileceğimiz bir şey yok ... – Gagravarr

+0

Teşekkürler @Gagravarr haklısınız. Sebebini buldum, lütfen aşağıdan mesajımı gör. Ama onu bulmak çok kolay değil, ilk başta sebebin 'HSSFWorkbook.write' içinde olduğunu düşündüm ve izledim ama hiçbir şey bulamadım. Sonra ben HSSFSheet.getLastRowNum() 'yi farklı bir yere koydum ve sorun kodunu en sonunda buldum. – zhuguowei

cevap

0

ben sebep buldum ki kaynak dosya (şablon) sadece 27.239 satır

#source file 
cat coupon_code_box.csv | wc -l 
27240 
# 
head coupon_code_box.csv -n 3 
table header here 
" "," "," "," "," "," "," "," "," " 
" "," "," "," "," "," "," "," "," " 

ve açıkça yeni satır yaratmaz benim kod var, bu yüzden eğer satır sayısı en az 27.239, bu onu görmezden geleceğim.

Row row = sheet.getRow(rowIndex); 
if(row!=null){ 
    Cell cell = row.getCell(celIndex); 
    cell.setCellValue(fillVal); 
} 

Şimdi benim çözüm

Row row = sheet.getRow(rowIndex); 
if(row==null){ 
    row=sheet.createRow(rowIndex); //explicitly create one new row 
} 
if(row!=null){ 
    Cell cell = row.getCell(celIndex); 
    if(cell==null) 
     cell = row.createCell(celIndex); //explicitly create one new cell 
    cell.setCellValue(fillVal); 
} 
+0

Son kodun hepsinin gerekli olduğundan emin değilsiniz - bir hücrenin asla boş olmadığından emin olun, sonra boş değil mi kontrol edin? – Gagravarr