У меня есть следующая проблема с Apache POI v3.12: Мне нужно использовать файл XLSX с 49 строками [0..48] в качестве шаблона, заполнить его ячейками данными и записать его как другой файл, чтобы я мог снова использовать шаблон. То, что я делаю, примерно такое:
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);
/позже/
Row row = sheet.getRow(rownum);
if (null == row) {
row = sheet.createRow(rownum);
}
После отладки выясняется, что getRow() возвращает значение null, но попытка выполнить .createRow() не выполнена:
java.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)
...
Мне что-то здесь не хватает? Насколько я читал в документах и форумах Apache, мне нужно создатьRow(), если getRow() возвращает null. Лист не содержит строк в соответствии с .getPhysicalRows(),.getFirstRowNum() и .getLastRowNum()
Спасибо.