一个小白给 2022-07-21 15:00 采纳率: 33.3%
浏览 23

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

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

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

  • 写回答

1条回答 默认 最新

  • CodeDevMaster Java领域优质创作者 2022-07-21 15:15
    关注

    推荐使用阿里开源项目: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写入异常");
            }
        }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 7月21日

悬赏问题

  • ¥15 新唐M451 DTMF检测和发送代码修改
  • ¥15 在国外文献网站里点击view pdf 加载异常缓慢甚至加载不出来。
  • ¥50 python批量提取发票的信息
  • ¥15 mysql安装,初始化数据库失败
  • ¥15 虚幻五引擎内容如何上传至网盘?
  • ¥15 使用mmpose库时出现了问题
  • ¥15 IRI2016模型matlab运行报错
  • ¥50 bat怎么设置电脑后台自动点击网页指定词运行脚本,输入指定网页链接,指定点击词,指定间隔时间,指定网页出现的词,指定网页出现词出现后后点击锁定,放在后台运行不影响前台鼠标工作
  • ¥20 20CrMnMo的高温变形抗力
  • ¥15 RTX3.6 5565驱动中断报错