java笔记_1_打印表格
Js代码
var a; var b; //a,b为入参(可无入参) window.open("/toExcel?a="+a+"&b="+b,"_black");
Controller代码
@GetMapping("/toExcel") public void getExcel(HttpServletRequest request, HttpServletResponse response){ excelService.getExcel(request, response); }
Service代码
public void getExcel(HttpServletRequest request, HttpServletResponse response) { log.info("开始导出到Excel"); try{ //获取前端传入的参数 String a = request.getParameter("a"); String b = request.getParameter("b"); //自定义方法获取要打印的数据(示例为学生数据) Student students = getStudents(a,b); //创建Excel文档 HSSFWorkbook wb = new HSSFWorkbook(); //创建表单sheet HSSFSheet sheet = wb.createSheet("sheet1"); //表头(第一行) HSSFRow row0 = sheet.createRow(0); row0.createCell(0).setCellValue("学号"); row0.createCell(1).setCellValue("姓名"); row0.createCell(2).setCellValue("性别"); row0.createCell(3).setCellValue("年龄"); Integer index = 1; //遍历获取到的学生数据 Iterator<Student> iterator = students.iterator(); while (iterator.hasNext()) { Student stu = iterator.next(); //创建行(从第二行开始) HSSFRow rowIndex = sheet.createRow(index); index++; //填入一行的数据 rowIndex.createCell(0).setCellValue(stu.getNo()); rowIndex.createCell(1).setCellValue(stu.getName()); rowIndex.createCell(2).setCellValue(stu.getSex()); rowIndex.createCell(3).setCellValue(stu.getAge()); } response.setContentType("application/x-msdownload"); //定义打印出来后的报表名 response.setHeader("Content-Disposition", "attachment; filename=" + new String(("学生名单").getBytes("GBK"), "iso8859-1") + ".xls"); OutputStream os = response.getOutputStream(); wb.write(os); os.close(); }catch (Exception e){ log.error("导出到Excel失败",e); } log.info("导出到Excel成功"); }