一、使用EasyExcel进行写操作
1、在pom中导入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<!--xlsx-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
2、创建实体类和Excel对应
@Data
public class DemoData {
//设置excel表头名称
@ExcelProperty("学生编号")
private Integer sno;
@ExcelProperty("学生姓名")
private String name;
}
3、编写主方法
public class TestEasyExcel {
public static void main(String[] args) {
//实现Excel的写操作【生成Excel】
//1、设置写入文件夹的地址和Excel文件的名称
String filename = "D:\\Downloads\\write.xlsx";
//2、调用EasyExcel里面的方法实现写操作
EasyExcel.write(filename, DemoData.class )
.sheet("学生列表").doWrite(getData());
}
private static List<DemoData> getData() {
List<DemoData> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
DemoData demoData = new DemoData();
demoData.setSno(i);
demoData.setName("测试" + i);
list.add(demoData);
}
return list;
}
}
4、测试结果
二、使用EasyExcel进行读操作
1、创建excel对应的实体类
在实体类上加上对应列的索引值
@Data
public class DemoData {
//设置excel表头名称
//index表示对应【列】的索引
@ExcelProperty(value = "学生编号", index = 0)
private Integer sno;
@ExcelProperty(value = "学生姓名", index = 1)
private String name;
}
2、编写EasyExcel的监听器
public class EasyExcelListener extends AnalysisEventListener<DemoData> {
//逐行读取excel的内容【o】
@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) {
System.out.println("读取完成");
}
}
3、编写主方法
public static void main(String[] args) {
//实现Excel的读操作【生成Excel】
//1、设置读取文件夹的地址和Excel文件的名称
String filename = "D:\\Downloads\\write.xlsx";
EasyExcel.read(filename, DemoData.class, new EasyExcelListener()).sheet().doRead();
}
4、实现效果