Apache POI&SXSSF:行数始终为0
我使用SXSSFWorkbook和SXSSFSheet对象。 我能够成功写入Excel文件:
FileOutputStream fos = new FileOutputStream(fileName); wb.write(fos); fos.close(); wb.dispose();
写入文件后,我正在加载/读取它的进一步更改。 这是问题,当我尝试获取getLastRowNum()的行数时,我总是得到0作为结果。 这是一段代码:
SXSSFWorkbook wb = null; try { wb = new SXSSFWorkbook(new XSSFWorkbook(new FileInputStream(fileName))); } catch (FileNotFoundException e) {e.printStackTrace(); } catch (IOException e) {e.printStackTrace();} SXSSFSheet sheet = wb.getSheet(sheetName); System.out.println(sheet.getLastRowNum());
结果是0! 我尝试使用迭代器创build自己的方法,但是这给了我相同的结果。
我没有任何错误消息,如果检查工作表的名称(sheet.getSheetName()),它将返回正确的名称,但不是正确的行数,尽pipeExcel文件有很多简单的行。
它正在为XSSFWorkbook工作
XSSFWorkbook workbook = null; try { workbook = new XSSFWorkbook(new FileInputStream(fileName)); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } XSSFSheet sheet = workbook.getSheet(sheetName); System.out.println(sheet.getLastRowNum());
这个代码片段返回我需要的结果。 我猜SXSSF对象(例如SXSSFWorkbook不适合阅读,虽然由于某些原因他们有适当的方法。