Apache POI v3.12 kullanarak aşağıdaki sorun var: Ben, bir şablon olarak 49 satır [0..48] ile bir XLSX dosyası kullanmak o hücreleri var doldurmak gerekir veri ile ve farklı bir dosya olarak yazmak, bu yüzden tekrar şablonu yeniden kullanabilirsiniz.Apache POI GetRow() null döndürür ve .createRow başarısız
XSSFWorkbook wbk_template = new XSSFWorkbook(new FileInputStream (f_wbk_template));
SXSSFWorkbook wbk = new SXSSFWorkbook(wbk_template, 50, true);
Sheet sheet = wbk.getSheet(STR_SHEET_NAME);
/daha sonra/o GetRow() null döndürür çıkıyor, ama .createRow() girişimi ile başarısız ayıklama üzerine
Row row = sheet.getRow(rownum);
if (null == row) {
row = sheet.createRow(rownum);
}
:
Ne yapıyorum yaklaşık şudurjava.lang.IllegalArgumentException: Attempting to write a row[2] in the range [0,48] that is already written to disk.
at org.apache.poi.xssf.streaming.SXSSFSheet.createRow(SXSSFSheet.java:122)
...
Burada bir şey mi eksik? Apache dokümanlar ve forumlarında okuduğum kadarıyla, getRow() öğesi null döndürürse, CreateRow() öğesini yaratmam gerekir. Sayfa, .getPhysicalRows(), .getFirstRowNum() ve .getLastRowNum()
uyarınca herhangi bir satır içermiyor. Teşekkürler.
Bu dava için neden SXSSFWorkbook kullanıyorsunuz? Neden bu boyuttaki bir dosya için sadece XSSFWorkbook'u kullanmıyorsunuz? – Gagravarr
Evet Gagravarr, Akış arayüzlerinin istediğimi yapamadıklarını anladım. Kodumu zaten değiştirdim ve her şey beklendiği gibi çalışıyor. Teşekkür ederim. –