public void export(HttpServletRequest request, HttpServletResponse response) throws ParseException, IOException {
String beginDateStr = request.getParameter("beginDate");
String endDateStr = request.getParameter("endDate");
//有end时间,进行批量导出
logger.error("export 批量导出对账文件beginDateStr ={},endDateStr={}",new Object[] {beginDateStr,endDateStr});
if(null != endDateStr && endDateStr.trim().length() > 0 && !endDateStr.equals(beginDateStr)) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Date dBegin = sdf.parse(beginDateStr);
Date dEnd = sdf.parse(endDateStr);
//获得时间区间所有日期
List<String> datas = DateUtil.findDatesFordd(dBegin, dEnd, sdf);
OutputStream out = null;
response.addHeader("Content-Disposition",
new StringBuffer("attachment;filename=\"").append(URLEncoder.encode("zip文件名", "utf-8"))
.append(beginDateStr).append("-").append(endDateStr).append(".zip").append("\"").toString());
out = response.getOutputStream();
ZipOutputStream zipos = new ZipOutputStream(out);
for (String date : datas) {
HSSFWorkbook workbook = 生成excel();
ZipEntry entry = new ZipEntry("excel文件名"+date + ".xls");
zipos.putNextEntry(entry);
workbook.write(zipos);
}
zipos.flush();
zipos.close();
return;
}
//单个excel
HSSFWorkbook workbook = 生成excel();
OutputStream out = null;
response.addHeader("Content-Disposition",
new StringBuffer("attachment;filename=\"").append(URLEncoder.encode("excel文件名", "utf-8"))
.append(beginDateStr).append(".xls").append("\"").toString());
out = response.getOutputStream();
workbook.write(out);
}
Excel打包zip,HttpServletResponse写回
来源:花图问答