美文网首页
【快捷】excel模板导出占位符

【快捷】excel模板导出占位符

作者: 小胖学编程 | 来源:发表于2024-09-01 10:52 被阅读0次

    有时候需要导出的excel文件格式比较复杂。此时需要使用到表有导出。

    1. 在工程的resource目录新增excel模板(如果excel模板发生表更,需要改一下模板名字,否则不能push到git仓库,导致无法部署在服务器上)
    模板样式.png
    1. [快捷]Java读取resources目录下的文件为InputStream将resources目录下的文件读取为流。

    2. 编码实现

    @Data
    public class ExamInfo {
        //序号
        @ExcelProperty(value = {"${index}"})
        private Long index;
        //题型
        @ExcelProperty(value = {"${type}"})
        private String type;
        //题干
        @ExcelProperty(value = {"${content}"})
        private String content;
    }
    
        @ResponseBody
        @GetMapping("/export")
        public void export(@RequestParam String docName, HttpServletResponse response) {
      
            List<ExamInfo> examInfoList = //获取到集合列表
            try {
                //读取模板文件流
                InputStream template =
                        OpenApiController.class.getClassLoader().getResourceAsStream("excel/template1.xlsx");
                response.setCharacterEncoding("UTF-8");
                //文件导出到响应
                response.setCharacterEncoding("UTF-8");
                response.setHeader("Content-Transfer-Encoding", "binary");
                response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
                response.setHeader("Pragma", "public");
                response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8");
                String fileName = "exam" + System.currentTimeMillis() + ".xlsx";
                fileName = new String(fileName.getBytes(), "ISO-8859-1");
                response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
                EasyExcel.write(response.getOutputStream(), ExamInfo.class)
                        .withTemplate(template)
                        .needHead(false)
                        .sheet()
                        .doFill(examInfoList);     //注意,此处使用doFill()的方法
            } catch (Exception e) {
                throw new BusinessException(e);
            }
        }
    

    相关文章

      网友评论

          本文标题:【快捷】excel模板导出占位符

          本文链接:https://www.haomeiwen.com/subject/tmrcljtx.html