easyExcel写操作
- 引入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
- 建实体类
@Data
public class DemoData {
//设置excel表头名称
@ExcelProperty("学生编号")
private Integer sno;
@ExcelProperty("学生的姓名")
private String name;
}
- 测试
@SpringBootTest
@RunWith(SpringRunner.class)
public class TestEasyExcel {
//实现easyExcel写操作
@Test
public void test(){
//1.设置写入文件地址和文件夹名称
String fileName = "F:/write.xlsx";
//2.调用easyExcel里面方法实现写操作
EasyExcel.write(fileName, DemoData.class)
.sheet("学生列表")
.doWrite(getDatas());
}
private static List<DemoData> getDatas(){
List<DemoData> list = new ArrayList<>();
for (int i = 0; i < 100000; i++) {
DemoData demoData = new DemoData();
demoData.setSno(i+1);
demoData.setName("demo"+(i+1));
list.add(demoData);
}
return list;
}
}
4.生成结果
easyExcel读操作
- 创建和excel对应的实体类 ,标记对应关系
这里方便操作直接修改之前的实体类
@Data
public class DemoData {
//设置excel表头名称
@ExcelProperty("学生编号",index = 0)
private Integer sno;
@ExcelProperty("学生的姓名",index = 1)
private String name;
}
- 创建监听进行excel文件读取(一行一行的读取)
public class ExcelListener extends AnalysisEventListener<DemoData> {
//一行一行的读取excel数据,表头不会读取
@Override
public void invoke(DemoData demoData, AnalysisContext analysisContext) {
//读到的数据
System.out.println("*******"+demoData);
}
//读取表头
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.out.println("表头"+headMap);
}
//读取完成之后
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}
3.测试
//实现easyExcel读操作
@Test
public void test1(){
String fileName = "F:/write.xlsx";
EasyExcel.read(fileName, DemoData.class, new ExcelListener()).sheet().doRead();
}