如何在 Java 中删除 Excel 工作表的内容?

Shu*_*aha 4 java excel excel-2003 apache-poi

如何使用 Java SE 和 Apache POI 删除 Excel 工作簿中 Excel 工作表的内容?

Voi*_*son 6

我发现removeSheetAt/createSheet实际上并不是一个可接受的答案,因为您无法将新工作表放入工作簿中的正确位置而不遇到WorkSheet.setSheetOrder中的错误

这段代码片段

Sheet sheet = wb.getSheetAt(0);
for (Row row : sheet) {
   sheet.removeRow(row);
}
Run Code Online (Sandbox Code Playgroud)

在我的世界里抛出一个ConcurrentModificationException

我不得不求助于

    for (int index = crnt.getLastRowNum(); index >= crnt.getFirstRowNum(); index--) {
        crnt.removeRow( crnt.getRow(index));
    }
Run Code Online (Sandbox Code Playgroud)


Thi*_*oji 5

正如之前的评论中提到的

Sheet sheet = wb.getSheetAt(0);
for (Row row : sheet) {
   sheet.removeRow(row);
}
Run Code Online (Sandbox Code Playgroud)

这段代码向我抛出 ConcurrentModificationException 。所以,我已经修改了代码,它工作正常。这是代码:

Sheet sheet = wb.getSheetAt(0);
Iterator<Row> rowIte =  sheet.iterator();
while(rowIte.hasNext()){
    rowIte.next();              
    rowIte.remove();
}
Run Code Online (Sandbox Code Playgroud)


jkr*_*ill 1

您可能想使用HSSFWorkbook.removeSheetAt(index).