配置阿里EasyExcel将数据导出为excel表

文章介绍了如何在EasyExcel中仅配置导出功能,处理中文文件名乱码问题,包括使用`URLDecoder`和自定义实体类的注解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EasyExcel官方文档

因为只有导出的需求,所以只配置了导出的功能。

直接上代码:

public void downloadReportData(){
        String fileName = "用户详情报表数据";
        List<Materials> userEntities = new ArrayList<>();
        Materials userEntity = new Materials();
        userEntity.setName("自鑫");
        userEntity.setMaterialNo("9999");
        userEntity.setContacts("成都");
        userEntity.setIds(18);
        userEntity.setDepartment("码农");
        userEntities.add(userEntity);
        try {
            // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
            fileName = URLDecoder.decode(fileName, "UTF-8").replaceAll("\\+", "%20");
            EasyExcel.write( "C:/Users/Administrator/Desktop/"+fileName + ".xlsx", Materials.class).sheet("模板").doWrite(userEntities);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

一开始就实现的导出的功能,但是一直乱码,网上的教程都需要配合HttpServletResponse使用,但是公司用的这个版本太老了有好多解决乱码的都用不上,所以去扒了扒了官网文档,删删减减的测了一下出来了就,其中还有一个就是

URLDecoder.decode(fileName, "UTF-8").replaceAll("\\+", "%20")

这,生成的文件名是中文的格式,但是一开始文档里使用的是

URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20")

就导致生成的文件名一直是%E9...乱码显示,这个是比较坑的,找了很多文档才发现的。

止于剩下的就是声明一个实体类,然后

别忘了注解这一块,不然输出的时候就不知道输出啥了(我没试过)。

这个比较坑的是需要导出那个表就得去创建对应的实体类,有呢种自动生成的还好点,但是也得手动改一些数据,通用性感觉不是太好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值