小功能介绍
原数据是ArrayList类型,将其中的值取出并赋值到要导出的Excel表对象中,类型为ArrayList,最后导出Excel表
使用的工具是easyExcel,使用起来比原生的Excel表操作简单很多
具体实现
第一步:导入包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.0</version>
</dependency>
第二步:创建要导出的Excel实体
@Data
public class MemberEntity {
//@ExcelProperty:配置表头
@ExcelProperty("姓名")
private String name;
//设置列宽
@ColumnWidth(35)
@ExcelProperty("签到地址")
private String address;
}
第三步:创建Excel配置类
public class ExcelFileConfig {
//这里只配置了一个路径,如果需要其他配置可以在这里添加
public static String getPath() {
return "C:/Users/10023/Desktop/"; //这里写的Excel导出路径是我的桌面,可自行修改
}
}
第四步:使用
@PostMapping("/exportExcel")
public void exportExcel(@Valid @RequestBody exportExcelForm form) {
ArrayList<HashMap> members=form.getMembers(); //获取原始数据,可自行赋值
ArrayList<MemberEntity> list=new ArrayList<MemberEntity>();
for(int i=0;i<members.size();i++){
MemberEntity one=new MemberEntity();
one.setName((String)members.get(i).get("name"));
one.setAddress((String)members.get(i).get("address"));
System.out.println(one);
list.add(one);
}
System.out.println(list);
//设置Excel表文件名
String fileName = ExcelFileConfig.getPath() + "考勤记录" + System.currentTimeMillis() + ".xlsx";
// 这里指定class类,然后写到第一个sheet,名字为考勤记录表 然后写入对应的内容
EasyExcel.write(fileName, MemberEntity.class).sheet("考勤记录表").doWrite(list);
}
参考资料
1、Java使用EasyExcel实现常规的Excel导入导出(详细)点击进入