导入依赖 存在版本对应问题
<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>
编写实体类
public class User {
@ExcelProperty("学号")
private int id;
@ExcelProperty("名字")
private String name;
}
测试
public static void main(String[] args) {
List<User> list = new ArrayList<>();
for (int i = 0; i <5; i++) {
User user = new User();
user.setId(i);
user.setName("escaper"+i);
list.add(user);
}
String filename = "C:\\Users\\Administrator\\Desktop\\test.xlsx";//指定生成的名字和路径
EasyExcel.write(filename,User.class).sheet("学生列表").doWrite(list);
}
效果
生成的文件
读的要重新创建一个实体类
然后设置一个监听器
public class ExcelListener extends AnalysisEventListener<User> {
//一行行读取数据
@Override
public void invoke(User user, AnalysisContext analysisContext) {
System.out.println(user);
}
//读取表头内容
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.out.println(headMap);
}
//读取完成后的操作
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}
最终实现
public void read(){
String filename = "C:\\Users\\Administrator\\Desktop\\test.xlsx";//指定读取文件的路径
EasyExcel.read(filename,User.class,new ExcelListener()).sheet().doRead();
}