1.导入easyexcel
com.alibaba
easyexcel
2.1.1
2.准备一个实体类
@Data 注意这里我用了lombok依赖减去手动setget的代码量,若未使用请手动setget;
public class UserData {
@ExcelProperty("用户编号")
private int id;
@ExcelProperty("用户名称")
private String username;
}
@ExcelProperty("是每一列的标题")
一.导出
一.准备一个导出地址
String fileName="D:\excelTemp\1.xlsx"; //注意若没有建立excel文件,导出的时候会自动创建,excel支持xlsx跟xls;
二.模拟导出数据
ListuserData = new ArrayList<>(); //往list里塞数据 for (int i=0;i<10;i++){ UserData us = new UserData(); us.setId(i);; us.setUsername("lucyt"+i); userData.add(us); }
三.导出
//sheet是excel工作表的名字如 sheet1 sheet2 所代表名称,这是只导入一个sheet的写法,
//这里不需要关流,doWrite里已经写好了finish();
EasyExcel.write(fileName,UserData.class).sheet("用户信息").doWrite(userData);
//一个excel多个sheet
ExcelWriter build = EasyExcel.write(fileName, UserData.class).build();
WriteSheet sheet1 = EasyExcel.writerSheet(0, "用户一").head(UserData.class).build();
build.write(userData,sheet1);
WriteSheet sheet2 = EasyExcel.writerSheet(1, "用户er").head(UserData.class).build();
build.write(userData,sheet2);
build.finish();//注意这里一定要关流,若不关流则不显示内容;
四.测试与完整代码(这里只展示多个sheet的)
public static void main(String[] args) {
String fileName="D:\excelTemp\1.xlsx";
List userData = new ArrayList<>();
//往list里塞数据
for (int i=0;i<10;i++){
UserData us = new UserData();
us.setId(i);;
us.setUsername("lucyt"+i);
userData.add(us);
}
ExcelWriter build = EasyExcel.write(fileName, UserData.class).build();
WriteSheet sheet1 = EasyExcel.writerSheet(0, "用户一").head(UserData.class).build();
build.write(userData,sheet1);
WriteSheet sheet2 = EasyExcel.writerSheet(1, "用户er").head(UserData.class).build();
build.write(userData,sheet2);
build.finish();
// EasyExcel.write(fileName,UserData.class).sheet("用户信息").doWrite(userData);
}
二.导入
1.准备工作
//这里新建一个监听器,继承AnalysisEventListener这里泛型写读的实体类 //重写invoke方法 打印(userData); public class ExcelListener extends AnalysisEventListener{ @Override public void invoke(UserData userData, AnalysisContext analysisContext) { System.out.println(userData); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { } }
这里我把sheet1的页的数据改下
2.测试
EasyExcel.read('文件名',读的实体类的class,前面写好的实体类)
public static void main(String[] args) {
String fileName="D:\excelTemp\1.xlsx";
EasyExcel.read(fileName,UserData.class,new ExcelListener()).sheet(0).doRead();
EasyExcel.read(fileName,UserData.class,new ExcelListener()).sheet(1).doRead();
}



