首先导入maven依赖坐标
com.alibaba easyexcel 3.0.4
我们先创建个实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
@HeadRowHeight(value = 35) // 表头行高
@ContentRowHeight(value = 25) // 内容行高
@ColumnWidth(value = 50) // 列宽
public class User {
@ExcelProperty({"用户信息","姓名"})
private String userName;
@ExcelProperty({"用户信息","年龄"})
private Integer age;
@ExcelProperty({"用户信息","地址"})
private String address;
@ExcelProperty({"用户信息","生日"})
private Date birthday;
}
@ExcelProperty注解可以自定义表头,如果属性名相同会合并表头
写一个测试方法写入数据
public Listinit(){ //造伪数据 ArrayList users = new ArrayList<>(); for (int i = 0; i < 10; i++) { User user = new User(); user.setAddress("安徽宿州"+i); user.setUserName("张三"+i); user.setBirthday(new Date()); user.setAge(18+i); users.add(user); } return users; } @Test public void test02(){ List users = init(); // 要写入的路径,对应实体类 sheet是定义工作表名 dowrite要写入的数据 EasyExcel.write("C:\Users\95176\Desktop\测试.xlsx",User.class).sheet("用户信息").doWrite(users); }
写入的结果
数据读取
@Test
public void method03(){
ArrayList users = new ArrayList<>();
EasyExcel.read("C:\Users\95176\Desktop\测试.xlsx", User.class,new AnalysisEventListener (){
@Override
public void invoke(User o, AnalysisContext analysisContext) {
System.out.println(o);
users.add(o);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
System.out.println("完成");
}
}).sheet().doRead();
System.out.println(users);
}
读取结果



