EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。他能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。
官方网站:https://easyexcel.opensource.alibaba.com/
Gitee地址:https://gitee.com/easyexcel/easyexcel
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.0</version>
</dependency>
一、创建一个监听器
@Slf4j
public class ExcelListener<T> extends AnalysisEventListener<T> {
// 可以通过实例获取该值
private List<T> data = new ArrayList<>();
/**
* 读取excel内容
* 从excel中的第二行开始读取,把每行数据数据都读出来然后封装到T对象中
* 每解析一行数据就会调用一次该方法
*
* @param t
* @param analysisContext
*/
@Override
public void invoke(T t, AnalysisContext analysisContext) {
// 数据存储到list,供批量处理,或后续自己业务逻辑处理。
data.add(t);
}
/**
* 所有操作都完成之后才会执行本方法
*
* @param analysisContext
*/
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
// excel解析完毕以后需要执行的代码
log.info("This is doAfterAllAnalysed!!!!");
}
public List<T> getData() {
return data;
}
}
二、EasyExcel的读与写
public class EasyExcelTest {
@Test
public void excelReadTest() {
read();
}
@Test
public void excelWriteTest() {
write();
}
// Excel读操作
public static void read() {
// 定义读取Excel文件位置
String fileAddr = "D:\\easyExcel.xlsx";
// 创建一个监听器对象
ExcelListener<User> excelListener = new ExcelListener();
// 解析