EasyExcel 实现 批量生成多sheet多Excel打包zip下载

该文介绍了一个Java应用,利用EasyExcel库按班级分组导出高年级学生信息到多个Excel,并将这些Excel打包成zip文件供下载。主要步骤包括准备模板、填充数据以及创建和压缩Excel文件。

在这里插入图片描述

说明

需求场景

导出学校中高年级的学生信息,根据班级名称分组,一个班级一个excel导出,如果多个excel需要打包成zip压缩包下载,一个excel里面存在多个sheet的情况。

实现

1、准备一个excel模板

在这里插入图片描述
另一个sheet属于动态填充的表头和内容,里面不需要有什么信息
在这里插入图片描述

2、把整个excel模板放在resources里面

在这里插入图片描述

3、重点代码

@GetMapping("/upload")
    public void upload() {
   
   
        //初始化excel的数据体
        List<Map<String, String>> maps = new LinkedList<>();
        for (int i = 6; i < 13; i++) {
   
   
            HashMap<String, String> map = new HashMap<>();
            map.put("name", "小" + i);
            map.put("age", "" + i);
            maps.add(map);
        }


        //获取模板文件,模板文件需放在 resource下
        String templateExcelFileName = "upload.xlsx";
        InputStream templateExcelInputStream = this.getClass().getClassLoader().getResourceAsStream(templateExcelFileName);
        if (null == templateExcelInputStream) {
   
   
            log.info("模板文件不存在");
        }

        ByteArrayOutputStream outputStream = null;
        ZipOutputStream zipOut = null;
        try {
   
   
            //处理导出的zip 文件名称,避免中文乱码
            String date = new SimpleDateFormat("yyyyMMdd").format(new Date());
            String encodedFileName = URLEncoder.encode("高年级数据导出-" + date + ".zip", StandardCharsets.UTF_8.name()).<
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值