web-dev-qa-db-ja.com

ApachePOIを使用して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;

この後、私はシートを削除せずに、渡したものとまったく同じワークブックを取得します "Setup"

これを解決するのを手伝ってください。どんな助けもいただければ幸いです

14
Venkat

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

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

編集:-書き戻した後、destFileを返すことができます。

12
SudoRahul
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);
            }
        }       
}
1
Hadjadj taha