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

springboot结合阿里巴巴easyexcel,实现一键把Excel数据导入数据库

技术说明:

springboot:2.1.4.RELEASE
jQuery
Ajax
mysql:8.0.32

作业背景

我现在有个Excel表,里面有1000行数据,我不可能一个个录入数据库的,必须使用一键导入Excel,实现全部自动导入数据库。接下来就是实现这个功能的额,

pom.xml

        <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>4.0.2</version></dependency>

实体类,每个字段上面加入对应的注解,如下代码:@ExcelProperty(value = "序号",index = 0),value的值,如果Excel表的表头,跟字段属性名称一致,可以不写。否则value的值,以Excel字段为准。index的值,就是你Excel表头的位置。第一个就是0开始,全部一一匹配即可,如果某个Excel表头不需要导入,使用@ExcelIgnore忽略

@Data
@AllArgsConstructor
@NoArgsConstructor
public class BossDo implements Serializable {//序号@ExcelProperty(value = "序号",index = 0)private Integer id;//面试时间@ExcelProperty(value = "面试时间",index = 1)@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")private Date interviewTime;//面试者姓名@ExcelProperty(value = "姓名",index = 2)private String name;//性别@ExcelProperty(value = "性别",index = 3)private String sex;//手机号@ExcelProperty(value = "手机号码",index = 4)private String phoneNumber;//年龄@ExcelProperty(value = "年龄",index = 5)private String age;//是否通过@ExcelProperty(value = "是否通过",index = 6)private String pass;//是否试岗@ExcelProperty(value = "是否试岗",index = 7)private String trial;//是否入职@ExcelProperty(value = "是否入职",index = 8)private String state;//邀约人@ExcelProperty(value = "面试邀约人",index = 9)private String belong;//备注//@ExcelIgnore@ExcelProperty(value = "备注",index = 10)private  String other;}

创建导入的方法

说明:Ajax前端发起一个请求,请求地址是importExcel,我这里没有贴前段的代码,因为我当时就是测试,所以没有写。前段可以写一个上传的按钮来实现就可以了

    @RequestMapping("/importExcel")@ResponseBodypublic CommonReturnType  importExcel(HttpServletResponse response) {//CommonReturnType  这个是我自定义的返回数据的格式,你也可以直接返回string类型的字符串,"ok"//创建一个集合储存读取的数据List<BossDo> list = ListUtils.newArrayList();//BossDo这里对应你的实体类String fileName="C:\\Users\\86199\\Desktop\\到面统计表.xlsx";//这里是你本地Excel的路径EasyExcel.read(fileName, BossDo.class,new AnalysisEventListener<BossDo>() {/*** 解析每一条数据的时候被调用*/@Overridepublic void invoke(BossDo data, AnalysisContext context) {//在这里操作,将解析的每一条数据保存到数据库中,在这里可以调用数据库System.out.println("解析的数据为: "+data);list.add(data);//解析每一条数据,保存到上述list集合}/*** 解析完所有数据的时候被调用*/@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {for(BossDo bossDo : list) {bossService.insertBoss(bossDo);//这里是从list集合中,把每一条数据保存到数据库; bossService.insertBoss是我业务侧保存数据的方法}}}).sheet().doRead();return  CommonReturnType.success();}
http://www.rkmt.cn/news/22868.html

相关文章:

  • 2025年工业设备安装厂家权威推荐榜:管道/电气/暖通空调/空压系统/纯水系统/厂房通风/车间配电/机械设备专业安装服务全景解析
  • 实习内推】机器人操作系统Dora-rs团队招募实习生(北京)
  • 机器人控制利器:MPC入门与实践解析 - 指南
  • 2025年轧钢设备厂家权威推荐榜:冷轧机、热轧机源头生产厂家,技术实力与市场口碑深度解析
  • 实用指南:在鸿蒙NEXT中发起HTTP网络请求:从入门到精通
  • string略解
  • 《程序员修炼之道》 阅读笔记二
  • 是时候告别向日葵、Todesk、TeamViewer了,快速搭建自托管服务器RustDesk
  • $\text{Catalan}$ 数 卡特兰数
  • 风险评估的流程和各阶段的工作内容
  • 稀疏离散分数阶傅里叶变换的MATLAB实现
  • 2025 年导轨丝杆源头厂家最新推荐榜,技术实力与市场口碑深度解析的优质企业榜单东莞/直线/滚珠/孚雷导轨丝杆厂家推荐
  • far的数据类型
  • WSL+Ubuntu + AI (Claude, SpecKit, iFlow) 常用命令
  • 事件在react中的处理方式?
  • 农经权报表生成小程序介绍
  • Linux 中检测gz压缩文件是否损坏
  • 2025年信息流代运营服务商权威推荐榜:专业投放策略与高转化效果深度解析,助力企业精准营销
  • 权限维持-Windows权限维持
  • 1017
  • 2025 广州人力资源/派遣/外包/劳务外包/人事代理/推荐榜:精典人才创新 5 星领跑,适配招聘 / 测评 / 培训全场景企业需求
  • 2025 年选矿行业 2 号油厂家最新推荐排行榜:环保型 / 新型 / JQ202/101/QX/BK201/323 起泡剂等产品权威筛选,助力企业选对优质供应商
  • 2025 年探伤仪厂商最新推荐榜单:涡流 / 超声波 / 管材 / 焊缝 / 无损探伤仪优质企业权威盘点
  • 2025 年罗茨风机厂家最新推荐排行榜权威发布!深度解析各品牌优势助企业精准选型UNTW无泄漏/BRW水冷式罗茨风机厂家推荐
  • 【树莓派】安装PostgreSQL
  • 【数据结构】数据结构秘籍:如何衡量“查找”的快慢?ASL是关键! - 教程
  • 压缩 PDF 文件大小(3 大实用的 Python 库) - E
  • 请输入标题
  • 2、docker入门基本概念 - 实践
  • 国产项目管理工具Gitee的崛起:数字化转型浪潮下的本土化突围