使用POI删除Sheet页时,不能使用下面的代码循环删除。因为执行一遍后第二个sheet页的下标变成了0,但是i变成了1,所以循环里面应该放workbook.removeSheetAt(0);
for (int i=0;i<workbook.getNumberOfSheets();i++){
workbook.removeSheetAt(i);
}
而且当sheet页总数大于1时,上面的循环会留下最后一个sheet页,比如现在Excel中存在1和2两个sheet页。这时候执行上面的循环会剩下第二个sheet页,下标为0.所以如果要彻底删除,就得在执行一遍workbook.removeSheetAt(0);
比如下面:
//清空Excel
for (int i=0;i<workbook.getNumberOfSheets();i++){
workbook.removeSheetAt(0);
}
int num=workbook.getNumberOfSheets();
if (num>0){
workbook.removeSheetAt(0);
}