
目录
🎉4.下载
传统操作Excel大多都是利用Apach POl进行操作的,但是POI框架并不完善,使用过程非常繁琐且有较多的缺陷:
- 动态操作Excel非常繁琐,对于新手来说,很难在短时间内上手
- 读写时需要占用较大的内存,当数据量大时容易发生内存溢出问题(OOM)
基于上述原因,阿里开源出一款易于上手,且比较节省内存的Excel框架: EasyExcel
官网:官网连接
-
-
com.alibaba -
easyexcel -
3.0.4 -
注意:该版本与JDK8较为契合,高版本的JDK可能会出现兼容性问题;
- @Data
- public class User {
- @ExcelProperty(value = {"用户信息","姓名"},index = 0)
- private String userName;
- @ExcelProperty(value = {"用户信息","密码"},index = 1)
- private String password;
- @ExcelProperty(value = {"用户信息","年龄"},index = 2)
- private Integer age;
- @ExcelProperty(value = {"用户信息","年纪"},index = 4)
- private Double grade;
- @DateTimeFormat("yyyy/MM/dd")
- @ExcelProperty(value = {"用户信息","日期"},index = 3)
- private Date time;
- }
使用@ExcelProperty自定义表头
value属性:相同的值标记为统一单元格下
index:表示在第几列显示
受用@DateTimeFormat指定日期格式
创建测试对象,封装到集合之中
- /**
- * 初始化集合
- * @return
- */
- @Test
- public List
init() { - ArrayList
users = new ArrayList<>(); - for (int i = 0; i < 10; i++) {
- User user = new User();
- user.setAge(19 + i);
- user.setUserName("tom" + i);
- user.setPassword("666"+i);
- user.setGrade(79.5 + i);
- user.setTime(new Date());
- users.add(user);
- }
- return users;
- }

- /**
- * 从excel中读取数据
- */
- @Test
- public void test02() {
- ArrayList
users = new ArrayList<>(); -
- EasyExcel.read("E:\\桌面\\excel\\test01.xls", User.class, new AnalysisEventListener
() { - /**
- * 逐行读取excel内容,并封装
- * @param data
- * @param analysisContext
- */
- @Override
- public void invoke(User data, AnalysisContext analysisContext) {
- users.add(data);
- }
-
- @Override
- public void doAfterAllAnalysed(AnalysisContext analysisContext) {
- System.out.println("读取完毕~~");
- }
- }).sheet().doRead();
-
- Iterator
iterator = users.iterator(); - while (iterator.hasNext()){
- System.out.println(iterator.next());
- }
-
- }

参照官网即可
