Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Apache POI删除excel工作表_Java_Apache Poi_Poi Hssf - Fatal编程技术网

Java 使用Apache POI删除excel工作表

Java 使用Apache POI删除excel工作表,java,apache-poi,poi-hssf,Java,Apache Poi,Poi Hssf,我必须从Excel文件中删除一张工作表 以下是我的代码片段: FileInputStream fileStream = new FileInputStream(destFile); POIFSFileSystem fsPoi = new POIFSFileSystem(fileStream); HSSFWorkbook workbook = new HSSFWorkbook(fsPoi); int index = 0; HSSFSheet sheet = workbook.getSheet

我必须从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

使用Apache POI删除工作表

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);
            }
        }       
}
//Open file
  FileInputStream inputStream = new FileInputStream(new File(filePath));
  XSSFWorkbook workBook = new XSSFWorkbook(inputStream);

//Delete Sheet
  workBook.removeSheetAt(resultWorkbook.getSheetIndex("SheetToBeDeleted"));

//Save the file
  FileOutputStream outFile =new FileOutputStream(new File(filePath));
  workBook.write(filePath);
  outFile.close();