私はSXSSFWorkbookとSXSSFSheetオブジェクトを使用しています。私はさらに変更のために再びそれを読んで/ロードしていたファイルへの書き込みの後Apache POI&SXSSF:常に行数0
FileOutputStream fos = new FileOutputStream(fileName);
wb.write(fos);
fos.close();
wb.dispose();
:私は、Excelファイルに成功し書き込むことができています。ここで問題は、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です! イテレータを使って私自身のメソッドを作成しようとしましたが、同じ結果が得られます。
エラーメッセージはありません。シート名(sheet.getSheetName())をチェックすると、Excelファイルには単純な行が多数含まれていますが、適切な数の行は戻されません。それは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());
のために働いている
作成したばかりのファイルに書き込んでいないと動作しません。以前に作成した行の数が表示されますが、既存のファイルから読み込もうとしている場合は表示されません。 – clex