一.EasyExcel 介绍
1)Java 解析、生成 Excel 比较有名的框架有:Apache poi、jxl。但大都消耗内存。
2)EasyExcel 占用内存更小,使用更简单、方便。
3)EasyExcel 是一个 阿里巴巴,基于 Java 的简单、省内存的读写 Excel 到开源项目。
二.数据字典表,通过 Excel 写操作
1)使用步骤:
2)POM:
<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>
3)Excel 实体类:
4)写操作:输出操作: Excel 代码:
@RestController
public class ExcelDownController {
public static final String FILE_URL = "/Users/zhangsan/other/Excel.xlsx";
@RequestMapping(value = "/downExcel")
public void downExcel() {
ArrayList<ExcelPojo> excelPojos = new ArrayList<>();
excelPojos.add(new ExcelPojo(1, "张三", "秦皇岛"));
excelPojos.add(new ExcelPojo(2, "李四", "北戴河"));
excelPojos.add(new ExcelPojo(3, "王五", "王府井"));
EasyExcel.write(FILE_URL, ExcelPojo.class).sheet("用户信息")
.doWrite(excelPojos);
}
}
5)访问:
三.Excel 读操作:
1)pojo 类:
@AllArgsConstructor
@NoArgsConstructor
@Data
@ToString
public class ExcelPojo {
/**
* index = 0 : excel 从 Excel 文件最左面开始排序
*/
@ExcelProperty(value = "用户 id", index = 0)
private Integer id;
@ExcelProperty(value = "用户 姓名", index = 1)
private String name;
@ExcelProperty(value = "用户 地址", index = 2)
private String address;
}
2)使用 监听器:
public class ExcelListener extends AnalysisEventListener<ExcelPojo> {
/**
* 一行行读取内容,从第二行开始读取
*/
@Override
public void invoke(ExcelPojo data, AnalysisContext context) {
System.out.println("invoke()");
System.out.println(data.toString());
}
/**
* 一行行读取内容,从第 一行开始读取
*/
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.out.println("表头信息:" + headMap);
}
/**
* 读取之后执行
*/
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
}
}
3)读取:Excel 文件
public class ExcelReadControllerMain {
public static final String FILE_URL = "/Users/zhangsan/other/Excel.xlsx";
public static void main(String[] args) {
EasyExcel.read(FILE_URL, ExcelPojo.class, new ExcelListener())
.sheet().doRead();
}
}
4)
5)