话不多说,上代码,注释写的很清楚:
@RequestMapping(value = "/exportExcel") public void exporExcel(HttpServletRequest request,HttpServletResponse response) { String userID = request.getParameter("userID"); try { List<Cllog> cllogList = cllogService.getCusTNListBySchWorkId(userID); // 创建excel HSSFWorkbook wk = new HSSFWorkbook(); // 创建一张工作表 HSSFSheet sheet = wk.createSheet(); // 设置单元格宽度 sheet.setColumnWidth(0, 2000); sheet.setColumnWidth(1, 6000); // 创建第一行 HSSFRow row = sheet.createRow(0); // 创建第一行的列并向单元格写值 HSSFCell cell = row.createCell(0); cell.setCellValue("序列号"); cell = row.createCell(1); cell.setCellValue("手机型号"); // 写入数据 for (short i=0;i<cllogList.size();i++) { row = sheet.createRow(i+1); row.createCell(0).setCellValue(String.valueOf(i+1)); row.createCell(1).setCellValue(cllogList.get(i).getClCustn()); } // 文件名 String fileName = "手机型号" + userID + ".xlsx"; // 解决文件乱码 final String userAgent = request.getHeader("user-agent"); if (userAgent != null && userAgent.indexOf("Firefox") >= 0 || userAgent.indexOf("Chrome") >= 0 || userAgent.indexOf("Safari") >= 0) { fileName = new String(fileName.getBytes(), "ISO8859-1"); } else { fileName = URLEncoder.encode(fileName, "UTF8"); } // 下载文件 response.setContentType("application/octet-stream"); response.setHeader("Content-disposition", "attachment;filename="+fileName); response.flushBuffer(); wk.write(response.getOutputStream()); wk.close(); } catch (Exception e) { e.printStackTrace(); } }