目录
🧂1.简单介绍
🌭2.快速入门
🥓1.导入依赖
🍿2.导出到excel
🎏3.读入数据
🎉4.下载
1.简单介绍
传统操作Excel大多都是利用Apach POl进行操作的,但是POI框架并不完善,使用过程非常繁琐且有较多的缺陷:
- 动态操作Excel非常繁琐,对于新手来说,很难在短时间内上手
- 读写时需要占用较大的内存,当数据量大时容易发生内存溢出问题(OOM)
基于上述原因,阿里开源出一款易于上手,且比较节省内存的Excel框架: EasyExcel
官网:官网连接
2.快速入门
1.导入依赖
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.4</version></dependency>
注意:该版本与JDK8较为契合,高版本的JDK可能会出现兼容性问题;
2.导出到excel
- 1.创建实体类测试
@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指定日期格式
- 2.初始化集合
创建测试对象,封装到集合之中
/*** 初始化集合* @return*/@Testpublic List<User> init() {ArrayList<User> 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;}
- 3.导出数据
3.读入数据
/*** 从excel中读取数据*/@Testpublic void test02() {ArrayList<User> users = new ArrayList<>();EasyExcel.read("E:\\桌面\\excel\\test01.xls", User.class, new AnalysisEventListener<User>() {/*** 逐行读取excel内容,并封装* @param data* @param analysisContext*/@Overridepublic void invoke(User data, AnalysisContext analysisContext) {users.add(data);}@Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {System.out.println("读取完毕~~");}}).sheet().doRead();Iterator<User> iterator = users.iterator();while (iterator.hasNext()){System.out.println(iterator.next());}}
4.下载
参照官网即可