私のような他の質問を読んだことがありますが、私の行が削除されないので何かが恋しいです...多くの試行の後に次のコードになりました..最初のJava POI以外のすべての行を削除します
私はすべてのエラーを得ることはありませんが、どれも行が削除される
//...
FileInputStream file = new FileInputStream(new File("E:\\products.xls"));
HSSFWorkbook workbook = new HSSFWorkbook(file);
HSSFSheet sheet = workbook.getSheetAt(0);
for(int i=1; i<= sheet.getLastRowNum(); i++){
Row row = sheet.getRow(i);
deleteRow(sheet, row);
}
file.close();
FileOutputStream outFile = new FileOutputStream(new File("E:\\products.xls"));
workbook.write(outFile);
outFile.close();
//...
//The delete method...
private void deleteRow(HSSFSheet sheet, Row row) {
int lastRowNum = sheet.getLastRowNum();
int rowIndex = row.getRowNum();
if(rowIndex >= 0 && rowIndex < lastRowNum){
sheet.shiftRows(rowIndex + 1, lastRowNum, -1);
}
if(rowIndex == lastRowNum){
Row removingRow = sheet.getRow(rowIndex);
if(removingRow != null){
sheet.removeRow(removingRow);
System.out.println("Deleting.... ");
}
}
}
...カウンターは1から始まる理由です、第一行以外のすべての行を削除したいです。
UPDATE
あなたは、私は、ファイルを保存していなかった、後述するように...私は今、私はそれを保存する場所を上記のコードを更新しました!しかし、私の行の一部が削除され、それらのすべてではありません... 何が起こっているのですか?
ありがとうございました! – yaylitzis
あなたは大歓迎です! – Frank
'wb.write ...'と書いた行を 'file.close();で更新してください。 FileOutputStream outFile =新しいFileOutputStream(新しいファイル( "E:\\ products.xls")); workbook.write(outFile); outFile.close(); 'が正しく動作するようにします。 – yaylitzis