0
Apache POi HSSFライブラリを使用してExcelテーブルをアプリケーション(tableview)にインポートしてエクスポートしています。私はJavaから特定のIDを持つExcelで行を削除したいと思います。できます。私の問題は、私は行を削除した後、空の行があり、それは選択された行以上を削除します。誰も助けてくれますか?ここでApache POI - セルを削除して上に移動
FileInputStream inp = new FileInputStream(
"...............";
HSSFWorkbook wb = (HSSFWorkbook) WorkbookFactory.create(inp);
HSSFSheet sheet = wb.getSheetAt(0);
String selectedid = auftragTabelle.getSelectionModel().getSelectedItem().getId();
int rowIndex = 0;
int lastRowNum = sheet.getLastRowNum();
for (Row row : sheet) {
for (Cell cell : row) {
if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
if (cell.getRichStringCellValue().getString().trim().equals(selectedid)) {
rowIndex = cell.getRowIndex();
}
}
}
}
if (rowIndex >= 0 && rowIndex < lastRowNum) {
sheet.shiftRows(rowIndex, lastRowNum, -1);
}
if (rowIndex <= lastRowNum) {
HSSFRow removingRow = sheet.getRow(rowIndex);
if (removingRow != null) {
sheet.removeRow(removingRow);
}
}
OutputStream out = new FileOutputStream(
"............";
wb.write(out);
out.close();
}
おはよう、ありがとうございました。できます。しかし、私はこのファイルのインポートをreastart、最後のエントリは、テーブルビューで2回表示されます。 lastRowNumberは、行を削除する前と同じですと思います。あなたはこの問題の答えを知っていますか? – Yannick
4または5のエントリを削除すると、再起動時に最後のエントリが4または5回表示されます。私は最後の行番号を保存しないと思う。 – Yannick
これは私のテストデータと一緒に働いています(私はすべての行を1つずつ削除しています)。どのような種類のデータがシートにありますか(行の数、列の数など)? – JensS