SpringBoot利用EasyExcel实现导出数据

 更新时间:2023年07月03日 10:14:32   作者:我有一颗五叶草  
EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具,它能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能看,本文就将介绍如何利用EasyExcel实现导出数据,需要的朋友可以参考下

1. EasyExcel 介绍

EasyExcel 官网介绍 传统操作Excel大多都是利用 Apach POI 进行操作的,但是 POI
框架并不完善,使用过程非常繁琐且有较多的缺陷:
动态操作Excel非常繁琐,对于新手来说,很难在短时间内上手;
读写时需要占用较大的内存,当数据量大时容易发生内存溢出问题(OOM); 基于上述原因,阿里开源出一款易上手,且比较节省内存的Excel操作框架:EasyExcel
注意:easyExcel底层使用POI实现的;

 官网地址:EasyExcel(文档已经迁移) (yuque.com)

2. 导出

2.1 引入依赖

<!--引入easyexcel-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>3.0.4</version>
</dependency>

2.2 构建测试实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class User implements Serializable {
    @ExcelProperty(value = {"用户名"},index = 0)
    private String userName;
    @ExcelProperty(value = {"年龄"},index = 1)
    private Integer age;
    @ExcelProperty(value = {"地址"} ,index = 2)
    private String address;
    @ExcelProperty(value = {"生日"},index = 3)
    //注意:日期格式注解由alibaba.excel提供
	//  @DateTimeFormat("yyyy-MM-dd HH:mm")
    private Date birthday;
}

导出代码

    public static void main(String[] args) {
        //组装数据
        ArrayList<User> users = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            User user = new User();
            user.setAddress("西安" + i);
            user.setUserName("张三" + i);
            user.setBirthday(new Date());
            user.setAge(10 + i);
            users.add(user);
        }
        //不做任何注解处理时,表头名称与实体类属性名称一致
        EasyExcel.write("D:\\用户.xlsx", User.class).sheet("用户信息").doWrite(users);
    }

导出效果

3. 设置单元格大小

类上添加 如下注解

@HeadRowHeight(value = 35) // 表头行高
@ContentRowHeight(value = 25) // 内容行高
@ColumnWidth(value = 50) // 列宽
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@HeadRowHeight(value = 35) // 表头行高
@ContentRowHeight(value = 25) // 内容行高
@ColumnWidth(value = 50) // 列宽
public class User implements Serializable {
    @ExcelProperty(value = {"用户名"},index = 0)
    private String userName;
    @ExcelProperty(value = {"年龄"},index = 1)
    private Integer age;
    @ExcelProperty(value = {"地址"} ,index = 2)
    private String address;
    @ExcelProperty(value = {"生日"},index = 3)
    //注意:日期格式注解由alibaba.excel提供
//    @DateTimeFormat("yyyy-MM-dd HH:mm")
    private Date birthday;
}

效果如下:

到此这篇关于SpringBoot利用EasyExcel实现导出数据的文章就介绍到这了,更多相关SpringBoot EasyExcel导出数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Apache Hudi异步Clustering部署操作的掌握

    Apache Hudi异步Clustering部署操作的掌握

    这篇文章主要介绍了Apache Hudi异步Clustering部署操作的掌握,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • mybatis中如何传递单个String类型的参数

    mybatis中如何传递单个String类型的参数

    这篇文章主要介绍了mybatis中如何传递单个String类型的参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • springboot集成PageHelper分页失效的原因及解决

    springboot集成PageHelper分页失效的原因及解决

    项目启动初期,在集成mybatis的分页插件,自定义封装了一个分页的工具类,方便后期项目的扩展,结果无法分页了,怎么设置搞都没办法正常分页,所以本文将给大家介绍一下springboot集成PageHelper分页失效的原因及解决,需要的朋友可以参考下
    2023-10-10
  • 开源的Java图片处理库实例详解

    开源的Java图片处理库实例详解

    Java 图片处理库提供了丰富的功能,用于处理和增强图像,在Java生态系统中,有几个流行的开源库可以用于图片处理,这些库提供了丰富的功能,如图像缩放、裁剪、颜色调整、格式转换等,本文介绍开源的Java图片处理库介绍,感兴趣的朋友一起看看吧
    2024-03-03
  • java制作专属智能陪聊机器人详解

    java制作专属智能陪聊机器人详解

    人工智能一直是最近的热点话题,,这篇文章主要为大家详细介绍了java实现智能陪聊机器人,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • springboot 防止重复请求防止重复点击的操作

    springboot 防止重复请求防止重复点击的操作

    这篇文章主要介绍了springboot 防止重复请求防止重复点击的操作,URL 拦截器可以使用 spring 拦截器,但使用 spring,每个需要过滤的新 URL 都需要添加配置,因此这里使用 AOP 注解 的形式来实现,结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • 聊聊springboot2.2.3升级到2.4.0单元测试的区别

    聊聊springboot2.2.3升级到2.4.0单元测试的区别

    这篇文章主要介绍了springboot 2.2.3 升级到 2.4.0单元测试的区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • spring boot定时任务接收邮件并且存储附件的方法讲解

    spring boot定时任务接收邮件并且存储附件的方法讲解

    今天小编就为大家分享一篇关于spring boot定时任务接收邮件并且存储附件的方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • MyBatis-Plus多表联合查询并且分页(3表联合)

    MyBatis-Plus多表联合查询并且分页(3表联合)

    这篇文章主要介绍了MyBatis-Plus多表联合查询并且分页(3表联合),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Java网络编程UDP实现消息发送及聊天

    Java网络编程UDP实现消息发送及聊天

    这篇文章主要为大家详细介绍了Java网络编程UDP实现消息发送及聊天,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07

最新评论