2013-02-19 4 views
9

Мне нужно удалить лист из файла Excel.Удалите лист Excel с помощью Apache POI

Вот мой фрагмент кода:

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; 

После этого я получать точно такую ​​же книгу, которую я прошел, без удаления листа «Setup»

Помогите мне решить эту проблему. Любая помощь будет оценена

ответ

12

После редактирования вашей книги вам необходимо написать ее снова. Попробуйте это: -

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

Edit: - После того, как писать его обратно, вы можете вернуть destFile.

0
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); 
      } 
     }  
} 
Смежные вопросы