Easypoi之excel模板导出

模板导出跟简单导出差不多,只是controller层略微有点差别,另外要准备一个导出的模板

其他代码点击Easypoi之excel简单导出
准备一个导出的模板
在这里插入图片描述
在这里插入图片描述

controller层代码

    /**
     * 按模板导出数据
     * @param response
     */
    @PostMapping(value = "/exportByTem",produces = "application/octet-stream")
    public void exportJg(HttpServletResponse response,HttpServletRequest request){
    
    
        /**
         *如果是在SSM项目中用以下方式,模板直接放在webapp下
         * String path = request.getSession().getServletContext().getRealPath("/")+"template/技工报名表.xls";
         * TemplateExportParams params = new TemplateExportParams(path);
         */
        //取到要导出的模板
        TemplateExportParams params = new TemplateExportParams("\\static\\template\\报名表.xls");
        if (null!=params){
    
    
            List<Applys> list = ApplyService.queryAll();
            Map<String, Object> map = new HashMap<String, Object>();
            List<Map<String, String>> listMap = new ArrayList<Map<String, String>>();
            for (int i = 0; i < list.size(); i++) {
    
    
                Map<String, String> lm = new HashMap<String, String>();
                //put的键要跟excel模板中的名称一致
                lm.put("id", i + 1 + "");
                lm.put("examNo", list.get(i).getExamNo());
                lm.put("realName", list.get(i).getRealName());
                lm.put("sex", list.get(i).getSex());
                lm.put("idNo", list.get(i).getIdNo());
                lm.put("homeTown",list.get(i).getHomeTown());
                lm.put("highestDegree",list.get(i).getHighestDegree());
                lm.put("workYears",list.get(i).getWorkYears());
                lm.put("workTypeName",list.get(i).getWorkTypeName());
                lm.put("workTypeCode",list.get(i).getWorkTypeCode().toString());
                lm.put("skillGrade",list.get(i).getSkillGrade());
                lm.put("skillGradeCode",list.get(i).getSkillGradeCode());
                lm.put("workCompany",list.get(i).getWorkCompany());
                listMap.add(lm);
            }
            map.put("maplist", listMap);
            Workbook workbook = ExcelExportUtil.exportExcel(params, map);
            ServletOutputStream out = null;
            try {
    
    
                //流的形式传输数据
                response.setHeader("content-type","application/octet-stream");
                //防止中文乱码
                response.setHeader("content-disposition","attachment;filename="+ URLEncoder.encode("报名表.xls","UTF-8"));
                out=response.getOutputStream();
                workbook.write(out);
            }catch (IOException e){
    
    
                e.printStackTrace();
            }finally {
    
    
                if (null!=out){
    
    
                    try {
    
    
                        out.close();
                    } catch (IOException e) {
    
    
                        e.printStackTrace();
                    }
                }
            }
        }
    }

猜你喜欢

转载自blog.csdn.net/qq_42042158/article/details/121960909
今日推荐