写数据 ------------------------------------- 1.导入依赖--最新
<!-- easyExcel-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.0</version>
</dependency>
2.创建实体类
@Data
public class Student {
@ExcelProperty("学员id")
private Long id;
@ExcelProperty("姓名")
private String name;
@ExcelProperty("年龄")
private int age;
@ExcelProperty("性别")
private String sex;
@ExcelProperty("手机号")
private String phone;
@ExcelProperty("家庭地址")
private String address;
@ExcelProperty("邮箱")
private String email;
}
3.写方法
private List<Student> dataaa() {
List<Student> list = ListUtils.newArrayList();
for (int i = 0; i < 100000; i++) {
Student student = new Student();
student.setId((10086L + i));
student.setName("张" + i);
student.setAge(15);
student.setSex("男");
student.setAddress("南京");
student.setPhone("10086111");
list.add(student);
}
return list;
}
4.调用方法
@Test
public void iWrite() {
long star = System.currentTimeMillis();
String fileName = PATH + " EasyExcel.xlsx";
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
EasyExcel.write(fileName, Student.class).sheet("工作表1").doWrite(dataaa());
long end = System.currentTimeMillis();
System.out.println("写入十万数据耗时:" + ((double)(end - star)/1000) + " 秒");
}
执行 然后写入成功。
入门完成,把它写在自己的接口里面,调用接口,写入自己的数据
-----------------------------------------------------------------------
写入数据
@Test
@Transactional(rollbackFor = Exception.class)
public void repeatedRead() {
// 写法1:JDK8+ ,不用额外写一个DemoDataListener
// since: 3.0.0-beta1
String fileName = PATH + " EasyExcel.xlsx";
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
// 这里每次会读取3000条数据 然后返回过来 直接调用使用数据就行
EasyExcel.read(fileName, Student.class, new PageReadListener<Student>(studentList -> {
for (Student student : studentList) {
log.info("读取到一条数据{}", JSON.toJSONString(student));
}
studentService.saveBatch(studentList);
})).sheet().doRead();
}
后续需要,按照这个方法格式 嵌入到接口中即可。
入门式较为简单,进阶或者考虑执行性能的去Apache官网的EasyExcel中深入学习
POI写入03版本和07版本有差异
03版本数据有上限,最大只有65536条数据
07版本没有上限
------------------------------------------------------