• easyExcel快速入门


    目录

    🧂1.简单介绍

    🌭2.快速入门

    🥓1.导入依赖

    🍿2.导出到excel

    🎏3.读入数据 

    🎉4.下载 


    1.简单介绍

    传统操作Excel大多都是利用Apach POl进行操作的,但是POI框架并不完善,使用过程非常繁琐且有较多的缺陷:

    • 动态操作Excel非常繁琐,对于新手来说,很难在短时间内上手
    • 读写时需要占用较大的内存,当数据量大时容易发生内存溢出问题(OOM)

    基于上述原因,阿里开源出一款易于上手,且比较节省内存的Excel框架: EasyExcel

    官网:官网连接

    2.快速入门

    1.导入依赖

    1. com.alibaba
    2. easyexcel
    3. 3.0.4

    注意:该版本与JDK8较为契合,高版本的JDK可能会出现兼容性问题;

    2.导出到excel

    • 1.创建实体类测试
    1. @Data
    2. public class User {
    3. @ExcelProperty(value = {"用户信息","姓名"},index = 0)
    4. private String userName;
    5. @ExcelProperty(value = {"用户信息","密码"},index = 1)
    6. private String password;
    7. @ExcelProperty(value = {"用户信息","年龄"},index = 2)
    8. private Integer age;
    9. @ExcelProperty(value = {"用户信息","年纪"},index = 4)
    10. private Double grade;
    11. @DateTimeFormat("yyyy/MM/dd")
    12. @ExcelProperty(value = {"用户信息","日期"},index = 3)
    13. private Date time;
    14. }

     使用@ExcelProperty自定义表头

    value属性:相同的值标记为统一单元格下

    index:表示在第几列显示

    受用@DateTimeFormat指定日期格式

    • 2.初始化集合

    创建测试对象,封装到集合之中

    1. /**
    2. * 初始化集合
    3. * @return
    4. */
    5. @Test
    6. public List init() {
    7. ArrayList users = new ArrayList<>();
    8. for (int i = 0; i < 10; i++) {
    9. User user = new User();
    10. user.setAge(19 + i);
    11. user.setUserName("tom" + i);
    12. user.setPassword("666"+i);
    13. user.setGrade(79.5 + i);
    14. user.setTime(new Date());
    15. users.add(user);
    16. }
    17. return users;
    18. }
    • 3.导出数据

    3.读入数据 

    1. /**
    2. * 从excel中读取数据
    3. */
    4. @Test
    5. public void test02() {
    6. ArrayList users = new ArrayList<>();
    7. EasyExcel.read("E:\\桌面\\excel\\test01.xls", User.class, new AnalysisEventListener() {
    8. /**
    9. * 逐行读取excel内容,并封装
    10. * @param data
    11. * @param analysisContext
    12. */
    13. @Override
    14. public void invoke(User data, AnalysisContext analysisContext) {
    15. users.add(data);
    16. }
    17. @Override
    18. public void doAfterAllAnalysed(AnalysisContext analysisContext) {
    19. System.out.println("读取完毕~~");
    20. }
    21. }).sheet().doRead();
    22. Iterator iterator = users.iterator();
    23. while (iterator.hasNext()){
    24. System.out.println(iterator.next());
    25. }
    26. }

    4.下载 

    参照官网即可

  • 相关阅读:
    局域网基本概念和体系结构
    KMP算法
    Word2010入门
    [paper] lift,splat,shooting 论文浅析
    Typora美化思路分享
    Cis-[Pt-1,3-Propanediamine]-2-Me-Tetrazine/IC-MethylTetrazine四嗪的性质
    质因数分解式
    关系型数据库的设计思想,20张图给你看的明明白白
    解决pod健康检查问题
    机器学习从零到入门 集成学习
  • 原文地址:https://blog.csdn.net/dfdg345/article/details/138135846