我有一个工作簿,我正在尝试删除名称与特定字符串不匹配的工作表。
这是我的代码
XSSFWorkbook book = new XSSFWorkbook(new FileInputStream(excelName));
for(int i=0;i<book.getNumberOfSheets();i++){
System.out.println(book.getSheetAt(i).getSheetName());
if(!book.getSheetAt(i).getSheetName().equals(sheetName)){
book.removeSheetAt(i);
}
}
代码运行良好,但没有执行所需的任务
编辑
如上所述的解决方案是反转循环顺序。这是一个更干净的代码
private void removeOtherSheets(String sheetName, XSSFWorkbook book) {
for(int i=book.getNumberOfSheets()-1;i>=0;i--){
XSSFSheet tmpSheet =book.getSheetAt(i);
if(!tmpSheet.getSheetName().equals(sheetName)){
book.removeSheetAt(i);
}
}
}