Excel 导入导出
配合 EasyExcel,使用 @SetValue 和 BeanUtil 处理扁平 Bean 与嵌套 JSON 的转换。
示例
@Data
public class UserExcel {
@ExcelProperty("姓名")
private String name;
@ExcelProperty("手机号")
@SetValue("profile")
private String phone;
@ExcelProperty("地址")
@SetValue("profile")
private String address;
}
// 导入:Excel → 嵌套 JSON → 数据库
List<UserExcel> excelList = EasyExcel.read(file).sheet().doReadSync();
for (UserExcel excel : excelList) {
JSONMap json = new JSONMap();
BeanUtil.copyAsSource(excel, json, true);
User user = json.as(User.class);
userService.save(user);
}
// 导出:数据库 → 嵌套 JSON → 扁平 Excel
List<User> users = userService.list();
List<UserExcel> excelList = new ArrayList<>();
for (User user : users) {
JSONMap json = new JSONMap(user);
UserExcel excel = new UserExcel();
BeanUtil.copyAsTarget(json, excel);
excelList.add(excel);
}
EasyExcel.write(file, UserExcel.class).sheet().doWrite(excelList);