jfinal框架easyexcel插件导出带图片

官方文档

导入jar

 <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.8</version>
        </dependency>

    public void videoLearnLog() {
		Kv select = new Kv();
        List<User> users= User.dao.template("user.find", select).find();
        //excel
        String fileUuid = UuidKit.getUUIDNoMinus();
        String path = (PathKit.getWebRootPath() + "/" + fileUuid + "/").replace("\\", "/");
        String[] headers = {"序号", "用户姓名", "身份证号", "手机号码", "出生日期"};
        //数据
        List<List<Object>> list = new ArrayList<List<Object>>();
        for (int i = 0; i < users.size(); i++) {
            BigDecimal totals = users.get(i).get("totals");
            //转化为字符串输出
            String totalsStr = totals + "";
            List<Object> data = new ArrayList<Object>();
            data.add(String.valueOf(i + 1));
            data.add(users.get(i).get("name"));
            data.add(users.get(i).get("idno"));
            data.add(users.get(i).get("mobile"));
            data.add(users.get(i).get("birthday_time"));
           //oss图片地址写入excel,必须new URL() 如: data.add(new URL(idno_positive_img_url));
            try {
                String idno_positive_img_url = isImg(users.get(i).get("idno_positive_img_url"));
                if (idno_positive_img_url.equals("无")){
                    data.add(idno_positive_img_url);
                }
                else {
                    data.add(new URL(idno_positive_img_url));
                }
                
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
            list.add(data);

        }
        //生成excel
        String excelName = "用户信息表";
        //带图片导出 返回oss url地址
        String url = exportImg(excelName, headers, list,fileUuid,path);
        String format = DateUtil.format(new Date(), "yyyyMMddHHmmss");
        if (StrKit.isBlank(url)) {
            re("失败");
            return;
        }
        rsPara(format + excelName, Kv.by("url", url));
    }

//带图片导出
    public String exportImg(String excelName,String[] headers,List<List<Object>> list,
                            String fileUuid,String path){

        //String path = (PathKit.getWebRootPath() + "/").replace("\\", "/");

        String fileName = path + excelName + ".xlsx";

        File filemk = new File(path.toString());
        if (!filemk.exists()) {//如果文件夹不存在
            filemk.mkdir();//创建文件夹
        }

        // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
        // 内容的策略
        short a = 37;
        short b = 60;
        //new SimpleRowHeightStyleStrategy(a, b) a表示头部行高,b数据行高
        //new SimpleColumnWidthStyleStrategy(15) 列宽
        EasyExcel.write(fileName).registerWriteHandler(new SimpleRowHeightStyleStrategy(a, b))
                .registerWriteHandler(new SimpleColumnWidthStyleStrategy(15))
                .head(head(headers)).sheet(excelName).doWrite(list);
                //压缩文件
        File file = ZipUtil.zip(PathKit.getWebRootPath() + "/" + fileUuid);
        //上传oss
        String url = getUrl(file, excelName);
        //删除文件夹
        deleteFile(filemk);

        //删除压缩文件
        deleteFile(file);
        return url;
    }

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值