1. 程式人生 > 其它 >多個檔案打包一起匯出

多個檔案打包一起匯出

@RequestMapping(value = "/excel", method = RequestMethod.GET)
public void exportExcel(SettlementBillItemAllDTO dto, HttpServletRequest request, HttpServletResponse response){
settlementFinanceService.addOperationLog(null, null, "listOldExport", "匯出歷史演變表");
// 設定sheet名稱和檔名稱
String sheetName = "歷史演變表";
String fileName = sheetName + ".zip";
FileDownloadUtils.createFile(tempExcelFilePath);
List<File> files = new ArrayList<File>(); //宣告一個集合,用來存放多個Excel檔案路徑及名稱
try {
Integer size = 1;
Integer page = 1;
while (size > 0){
PageHelper.startPage(page, 100000);
PageInfo<SettlementBillItemAllDTO> dtoList =settlementFinancePriceService.query(dto,null,null);
String path = tempExcelFilePath + sheetName + page + ".xlsx";
new ExportExcel("", SettlementBillItemAllDTO.class, sheetName).setDataList(dtoList.getList()).generateExcelToPath(path);
//excel新增到files中
files.add(new File(path));
if(page >= dtoList.getPages()){
size = 0;
}else{
size = dtoList.getSize();
}

page++;
}
String zipPath = tempExcelFilePath + fileName;
//下載zip
FileDownloadUtils.downloadZip(request, response, fileName, files, zipPath);
//刪除tempDir資料夾和其中的excel和zip檔案
boolean b = FileDownloadUtils.deleteDir(new File(tempExcelFilePath));
if (!b) {
throw new RuntimeException("tempDir資料夾及其中的臨時Excel和zip檔案刪除失敗");
}

} catch (Exception e) {
log.error(e.getMessage(), e);
}finally {

}
}