1.引入依赖
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-spring-boot-starter</artifactId>
<version>4.4.0</version>
</dependency>
2.给实体类加注解
public class EduTeacher extends Model<EduTeacher> {
//讲师ID
@Excel(name = "id",width = 10)
private String id;
//讲师姓名
@Excel(name = "讲师姓名",width = 20)
private String name;
//讲师简介
@Excel(name = "讲师简介",width = 20)
private String intro;
//讲师资历,一句话说明讲师
@Excel(name = "讲师资历",width = 20)
private String career;
//头衔 1高级讲师 2首席讲师
@Excel(name = "头衔",width = 20 ,replace={"高级讲师_1","首席讲师_2"})
private Integer level;
//讲师头像
@Excel(name = "讲师头像",width = 40)
private String avatar;
//排序
private Integer sort;
//逻辑删除 1(true)已删除, 0(false)未删除
private Integer isDeleted;
//创建时间
@Excel(name = "创建时间",width = 40, format = "yyyy-MM-dd HH:mm:ss")
@TableField(fill = FieldFill.INSERT)
private Date gmtCreate;
//更新时间
@Excel(name = "更新时间",width = 40, format = "yyyy-MM-dd HH:mm:ss")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date gmtModified;
}
注解说明:
- name:Excel中的列名;
- width:指定列的宽度;
- needMerge:是否需要纵向合并单元格;
- format:当属性为时间类型时,设置时间的导出导出格式;
- desensitizationRule:数据脱敏处理,
3_4表示只显示字符串的前3位和后4位,其他为*号; - replace:对属性进行替换;
- suffix:对数据添加后缀。
3.导出功能具体实现
@GetMapping("testExport")
public void export(ModelMap map,HttpServletRequest request,HttpServletResponse response){
List<EduTeacher> eduTeacherList = eduTeacherService.list(new QueryWrapper<>());
ExportParams params = new ExportParams("讲师列表", "讲师列表", ExcelType.XSSF);
map.put(NormalExcelConstants.DATA_LIST, eduTeacherList);
map.put(NormalExcelConstants.CLASS, EduTeacher.class);
map.put(NormalExcelConstants.PARAMS, params);
map.put(NormalExcelConstants.FILE_NAME, "memberList");
PoiBaseView.render(map, request, response, NormalExcelConstants.EASYPOI_EXCEL_VIEW);
}
4.导入功能
@RequestMapping(value = "/importMemberList", method = RequestMethod.POST)
@ResponseBody
public R importMemberList(@RequestPart("file") MultipartFile file) {
ImportParams params = new ImportParams();
params.setTitleRows(1);
params.setHeadRows(1);
try {
List<EduTeacher> list = ExcelImportUtil.importExcel(
file.getInputStream(),
EduTeacher.class, params);
eduTeacherService.saveBatch(list);
return success(list);
} catch (Exception e) {
e.printStackTrace();
return R.failed("导入失败!");
}
}