码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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.下载 

    参照官网即可

  • 相关阅读:
    【教学类-38-02】20230724京剧脸谱2.0——竖版(小彩图 大面具)(Python 彩图彩照转素描线描稿)
    vue3学习源码笔记(小白入门系列)------ 组件更新流程
    北斗导航 | LAMBDA方法:整周模糊度估计——原理实现
    23.3 Bootstrap 框架4
    windows启动项目端口被占用
    两日总结七
    Java的方法和递归
    全栈开发学习记录:一个简单的node.js服务器以及用到的表、视图、存储过程和配套测试的前端.
    基于ssm的搬家管理系统
    vue封装带确定、取消按钮的弹窗和提示组件,可用promise回调
  • 原文地址:https://blog.csdn.net/dfdg345/article/details/138135846
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号