尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

springboot结合阿里巴巴easyexcel,实现一键把Excel数据导入数据库
📅 发布时间:2026/6/18 23:08:01

技术说明:

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();}

相关新闻

  • 2025年工业设备安装厂家权威推荐榜:管道/电气/暖通空调/空压系统/纯水系统/厂房通风/车间配电/机械设备专业安装服务全景解析
  • 实习内推】机器人操作系统Dora-rs团队招募实习生(北京)
  • 机器人控制利器:MPC入门与实践解析 - 指南

最新新闻

  • 4.19周总结
  • 2026华南优质企业管理培训机构综合测评:企业管理培训哪家好 - 品牌测评鉴赏家
  • MCP1701A LDO在STM32低功耗设计中的应用与实战解析
  • 终极Excalidraw虚拟白板指南:为什么它正在取代你的传统绘图工具?
  • 跨省大件货物托运怎么选?全品类快递物流整合渠道对比,大小货手机一键预约上门 - 时讯资讯
  • 大模型应用开发-记忆模块设计:基于助手Agent类型

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号