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"
これを解決するのを手伝ってください。どんな助けもいただければ幸いです
ブックを編集した後、もう一度書き込む必要があります。これを試して:-
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);
}
}
}