- 解析excel的工具有: poi jxl easyExcel
poi 和jxl 内存消耗严重 easyExcel给poi做了封装优化
官方网站: https://www.yuque.com/easyexcel/doc/easyexcel - 写操作
// 引入依赖
/**
1. 因为是poi优化来的 所以需要引入 poi的依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</dependency>
2. 还需要引入easyExcel 的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.1</version>
</dependency>
3. 写入数据
EasyExcel.write(文件的完整路径, 实体类.class)
.sheet(页数,页名).doWrite(需要写入的数据(list集合));
//
*/
//注解
/*
1. @ExcelProperty("字符串标题") // 设置标题
2. @ExcelIgnore // 忽略字段
private String ignore;
*/
- 读操作
// 1.创建监听器
//每解析一条数据 都会调用一次invoke方法
@Override
public void invoke(ExcelEntity excelEntity, AnalysisContext analysisContext) {
System.out.println("读取第" + COUNT + "数据: " + excelEntity);
COUNT++;
}
//读取表头
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.out.println("表头: " + headMap);
}
//完全解析完数据之后调用这个方法
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
System.out.println("数据读取完毕!--------------------------");
}
// 2. 开始读取操作
public void readExcel(){
String fileName = "E:\\IdeaProject\\guli_parent\\service\\service-edu\\src\\static\\" +
"test1.xlsx" ;
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
EasyExcel.read(fileName, ExcelEntity.class, new DataListener()).sheet().doRead();
}