当前位置: 首页 > news >正文

EasyPoi 数据脱敏

结果

规则

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>
http://www.cnnetsun.cn/news/23509.html

相关文章:

  • 收藏必备!GPT-5.2震撼发布:OpenAI反击战,职场程序员的AI新神器
  • 3步上手Sparta:让网络安全渗透测试变得像玩游戏一样简单
  • Android媒体画廊应用终极指南:轻量级隐私保护的完美选择
  • FT8371A,FT8371B,FT8371C 次边同步整流芯片典型应用资料分析
  • 智慧文旅信创落地新标杆:四川省文旅厅完成MySQL 5.7平滑替换,筑牢省级管理平台自主可控底座
  • 7、Unix/Linux 网络监控与日志管理全解析
  • 11、数据备份与系统安装全攻略
  • 12、Unix/Linux 系统设置与生产准备全攻略
  • 5步掌握网页数据采集:零代码工具完全操作手册
  • 15、测试系统与“安全”系统
  • TradingAgents-CN实战指南:从零开始构建你的AI交易智能体团队
  • 18、系统与网络安全全解析
  • 检索增强生成(RAG)在Java应用中的实践指南
  • 机器学习测试神器TensorFlow Model Analysis实战
  • Monitorian:多显示器亮度调节的终极解决方案,一键掌控视觉舒适度
  • 2025 主流 GEO 优化服务商 TOP4,助力 ToB 精准选型
  • 影刀RPA×AI双剑合璧!小红书商品图片批量上传,效率提升50倍![特殊字符]
  • 从中国出发,向世界展示!AI开发者亚马逊云科技狂欢专属攻略!
  • WPF SynchronizationContext的使用
  • 影刀RPA实战:AI智能生成小红书销售日报,3分钟搞定全天数据![特殊字符]
  • Sossoldi跨平台部署完全指南:从开发到上线的财富管理应用构建
  • 终极韩语NLP指南:快速掌握KoNLPy核心功能
  • 2026年大模型技术产业化浪潮:岗位需求激增,AI大模型工程师成为高薪稀缺人才!
  • 学生党必看免费亲测降ai率工具,这些坑你别踩
  • CentOS7 交叉编译 ACE+TAO-6.5.13 安卓 arm64-v8a 静态库
  • AIGC 版权争夺战:生成内容的归属、侵权与保护难题破解
  • 如何快速使用ChromePass:完整的Chrome浏览器密码提取指南
  • Obsidian个性化定制全攻略:从基础美化到专业界面设计
  • nvm-desktop终极指南:一站式解决Node.js版本管理难题
  • 如何快速获取广州市行政区划数据:免费GIS资源完整指南