2013-02-19 19 views
9

Excelファイルからシートを削除する必要があります。Apache POIを使用して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; 

私はシート「セットアップ」を除去することなく、私は渡されたまったく同じワークブックを取得しています

私はこれを解決するのに役立ちます。どんな助けもありがたいです

答えて

12

ブックを編集した後、もう一度書く必要があります。これを試してください: -

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

編集: - 戻ってそれを書き込んだ後、あなたは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); 
      } 
     }  
}