!excel多表多模板导出多sheet页

需要做一个excel导出功能,一共4张表,4种模板,要求导出到一个excel中的sheet中

尝试过poi,和autopoi,没找到同时符合要求的例子,希望各位大/神可以帮助一下

推荐使用阿里开源项目:easyexcel进行Excel的读写操作,方便简单高效。

1.添加依赖

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.1.6</version>
        </dependency>

2.使用如下封装类

    /**
     * 
     * @param response 响应对象
     * @param list 下载数据,如:List<User>
     * @param object 数据对象,如:User
     * @param title sheet标题
    * @param sheetNo sheet编号
     */
    private void download(HttpServletResponse response, ArrayList<Object> list, Object object, String title, Integer sheetNo) {
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf-8");
        response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
        String fileName;
        try {
            fileName = URLEncoder.encode(title, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            log.info("导出时,文件名编码错误");
            e.printStackTrace();
            throw new BusinessException("文件名称编码异常");
        }

        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
        try {
            EasyExcel.write(response.getOutputStream(), object.getClass()).sheet(sheetNo,title).doWrite(list);
        } catch (IOException e) {
            log.info("导出时,EasyExcel write 错误");
            e.printStackTrace();
            throw new BusinessException("Excel写入异常");
        }
    }