目录
🧂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
*/
@Test
public 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中读取数据
*/
@Test
public void test02() {
ArrayList<User> users = new ArrayList<>();
EasyExcel.read("E:\\桌面\\excel\\test01.xls", User.class, new AnalysisEventListener<User>() {
/**
* 逐行读取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<User> iterator = users.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
4.下载
参照官网即可