public class ExportExcel {
// 下载Excel表格
String[] excelHeader = { "监控点编号", "监控点名称", "抓拍时间", "捕获数量" };
public HSSFWorkbook export(List<Map<String, Object>> list) throws ParseException {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("统计报表");
HSSFRow row = sheet.createRow((int) 0);
// 设置字体
HSSFFont font = wb.createFont();
font.setFontHeightInPoints((short) 20); // 字体高度
font.setColor(HSSFFont.COLOR_RED); // 字体颜色
font.setFontName("黑体"); // 字体
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 宽度
font.setItalic(true); // 是否使用斜体
// 设置单元格类型
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setFont(font);
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平布局:居中
cellStyle.setWrapText(true);
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
for (int i = 0; i < excelHeader.length; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellValue(excelHeader[i]);
cell.setCellStyle(style);
sheet.autoSizeColumn(i);
}
for (int i = 0; i < list.size(); i++) {
row = sheet.createRow(i + 1);
sheet.autoSizeColumn((short) 0); // 自动调整第一列宽度
sheet.autoSizeColumn((short) 1); // 自动调整第二列宽度
sheet.autoSizeColumn((short) 2); // 自动调整第三列宽度
sheet.autoSizeColumn((short) 3); // 自动调整第四列宽度
Map<String, Object> map = list.get(i);
row.createCell(0).setCellValue((String) map.get("no"));
row.createCell(1).setCellValue((String) map.get("name"));
row.createCell(2).setCellValue((String) (map.get("hours")));
row.createCell(3).setCellValue(map.get("num").toString());
}
return wb;
}
}
//controller层
@RequestMapping(value="/excelExport")
public void exportExcel(HttpServletRequest request, HttpServletResponse response)
throws Exception {
//分页
Integer currentPage = SBDUtility.getInteger(request.getParameter("currentPage"), 1);
Integer pageSize = SBDUtility.getInteger(request.getParameter("pageSize"), 15);
Integer objId = SBDUtility.getInteger(request.getParameter("objId"), 0);
Integer level = SBDUtility.getInteger(request.getParameter("level"), 0);
Integer datePeriod = SBDUtility.getInteger(request.getParameter("datePeriod"), 1);
String currentStartDate = SBDUtility.getString(request.getParameter("currentStartDate"), "");
String currentEndDate = SBDUtility.getString(request.getParameter("currentEndDate"), "");
String date_sp = SBDUtility.getSpiTimes(2, -(datePeriod.intValue()));
UsersVOExt u = (UsersVOExt)request.getSession().getAttribute("userSession");
Map<String,Object> condMap = new HashMap<String,Object>();
//把从前台页面获取到的值放到map里
condMap.put("roleId", u.getRole_id());
condMap.put("companyId", u.getCompany_id());
condMap.put("objId", objId);
condMap.put("level", level);
condMap.put("date_sp", date_sp);
condMap.put("currentStartDate", currentStartDate);
condMap.put("currentEndDate", currentEndDate);
//分页
condMap.put("currentPage", currentPage);
condMap.put("pageSize", pageSize);
Map<String, Object> mapList = this.captureInfoService.findCaptureInfoService(condMap);
List<Map<String, Object>> list = (List<Map<String, Object>>) mapList.get("records");
//下载Excel
HSSFWorkbook wb = export(list);
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=StatisticalReport.xls");
OutputStream ouputStream = response.getOutputStream();
wb.write(ouputStream);
ouputStream.flush();
ouputStream.close(); }
//前台页面-点击下载按钮
function btnExcel(){
location.href="../excelExport.action";
}