目录
一、 导入依赖
<!--xls 注意和easyExcel有版本对应-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.1.7</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.1.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>
二、基本操作
2.1 导入数据到Excel
第一步:编写表头实体类
注意:需要添加相应的注解
第二步: 编写实现代码
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.pojo.ExcelEntity;
import com.alibaba.excel.write.builder.ExcelWriterBuilder;
import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder;
import java.util.ArrayList;
import java.util.List;
public class TestExcel {
public static void main(String[] args) {
// 实现Excel写的操作
// 1、设置写入文件夹地址和Excel文件名称
String outPutUrl = "D:\\test.xlsx";
// 2、调用easyExcel里面的方法实现写操作
ExcelWriterBuilder write = EasyExcel.write(outPutUrl, ExcelEntity.class);
ExcelWriterSheetBuilder sheet = write.sheet("学生列表");
sheet.doWrite(getData());
}
public static List<ExcelEntity> getData(){
List<ExcelEntity> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
ExcelEntity excel = new ExcelEntity();
excel.setSno(i);
excel.setSname("王"+i+"刚");
list.add(excel);
}
return list;
}
}
第三步: 结果
2.2 从Excel导出数据
注意: 读取数据时,是一行一行的读取。
第一步:编写表头实体类
第二步:编写监听器
public class ExcelListener2 extends AnalysisEventListener<ExcelEntity2> {
/**
* 这个方法表示会一行一行的读取Excel中的数据
* @param excelEntity2 数据
* @param analysisContext
*/
@Override
public void invoke(ExcelEntity2 excelEntity2, AnalysisContext analysisContext) {
System.out.println("*************"+excelEntity2);
}
/**
* 这个方法表示读取表头中的方法
* @param headMap 表头信息
* @param context
*/
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.out.println("表头信息为"+ headMap);
}
/**
* 这个方法表示Excel读取 之后会执行的方法
* @param analysisContext
*/
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}
第三步: 编写实现代码
@Data
public class TestExcel2 {
public static void main(String[] args) {
String inputFile = "D:\\test.xlsx";
ExcelReaderBuilder read = EasyExcel.read(inputFile, ExcelEntity2.class, new ExcelListener2());
ExcelReaderSheetBuilder sheet = read.sheet();
sheet.doRead();;
}
}