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成功");
}            

 

posted @ 2022-01-18 11:34  LuLuYaa  阅读(270)  评论(0编辑  收藏  举报