使用Apache POI删除Excel工作表

我必须从Excel文件中删除一张表。

这是我的代码片段:

FileInputStream fileStream = new FileInputStream(destFile); POIFSFileSystem fsPoi = new POIFSFileSystem(fileStream); HSSFWorkbook workbook = new HSSFWorkbook(fsPoi); int index = 0; HSSFSheet sheet = workbook.getSheet("Setup"); if(sheet != null) { index = workbook.getSheetIndex(sheet); workbook.removeSheetAt(index); } return destFile; 

在此之后,我得到了完全相同的工作簿,而没有删除工作表 “设置”

帮我解决这个问题。 任何帮助,将不胜感激

编辑工作簿后,需要再次编写它。 尝试这个:-

 FileOutputStream output = new FileOutputStream(destFile); workbook.write(output); output.close(); 

编辑 : – 写回后,您可以返回您的destFile

 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); } } }