结果
规则
Controller层
@CrossOrigin@GetMapping("/exportStudentsDesensitization")publicvoidexportStudentsDesensitization(HttpServletResponseresponse)throwsIOException{List<Student>studentList=studentService.list();List<StudentExportDesensitization>desensitizations=studentList.stream().map(e->{StudentExportDesensitizationstudentExportDesensitization=newStudentExportDesensitization();BeanUtil.copyProperties(e,studentExportDesensitization,false);returnstudentExportDesensitization;}).collect(Collectors.toList());// 设置响应输出的头类型response.setHeader("content-Type","application/vnd.ms-excel");// 设计导出文件的名称,尽量不要中文StringfileName=newString("导出.xls".getBytes(),"ISO-8859-1");response.setHeader("Content-Disposition","attachment;filename="+fileName);//输出流。ServletOutputStreamout=response.getOutputStream();// 创建参数对象(用来设定excel得sheet的内容等信息)ExportParamsparams=newExportParams();//sheet// title的参数为ExportParams类型,目前仅仅在ExportParams中设置了sheetNameparams.setSheetName("导出");Workbookworkbook=ExcelExportUtil.exportExcel(newExportParams("2412312","测试","测试"),StudentExportDesensitization.class,desensitizations);workbook.write(out);}导出Entity
@DatapublicclassStudentExportDesensitizationimplementsjava.io.Serializable{/** * 学生姓名 */@Excel(name="学生姓名",height=20,width=30,desensitizationRule="1,6")privateStringname;/** * 学生性别 */@Excel(name="学生性别",replace={"男_1","女_0"},suffix="生")privateintsex;@Excel(name="出生日期",databaseFormat="yyyy-MM-dd HH:mm:ss",format="yyyy-MM-dd",width=20)privateLocalDateTimebirthDay;@Excel(name="进校日期",databaseFormat="yyyy-MM-dd HH:mm:ss",format="yyyy-MM-dd")privateLocalDateTimeregistrationDate;@Excel(name="身份证",desensitizationRule="6_4")privateStringcard;@Excel(name="手机号",desensitizationRule="3_4")privateStringphone;@Excel(name="邮箱",desensitizationRule="3~@")privateStringemail;}数据库
导入pom
<dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>4.4.0</version></dependency>