当前位置: 首页 > 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.hskmm.com/?act=detail&tid=32927

相关文章:

  • 2025年10月长白山度假酒店推荐:民俗与国际品质兼得
  • 2025年10月长白山度假酒店推荐:民俗与国际范兼得
  • 2025年10月访客系统推荐:五强榜单与选型要点
  • 2025年工业设备安装厂家权威推荐榜:管道/电气/暖通空调/空压系统/纯水系统/厂房通风/车间配电/机械设备专业安装服务全景解析
  • 实习内推】机器人操作系统Dora-rs团队招募实习生(北京)
  • 2025 上海财税服务机构优选榜:上海注册公司与代理记账领域靠谱服务商推荐
  • GoodSync 2025年10月17日
  • 书本p66实训题第2题
  • 2025全屋定制厂家推荐:聚焦异形空间+特色色系,森佰特木业领衔优质之选
  • springboot 上传图片到服务器之后,前段不能正确加载图片问题
  • springboot 设置文件上传大小
  • 【光照】UnityURP[屏幕空间环境光遮蔽SSAO]原理剖析实践
  • Ai元人文:讨论一种新的决策科学
  • 2025年流量计厂家权威推荐榜单:热式/模拟式/数字式/高压/高温/耐腐蚀/多气体/4-20mA/RS485/分体式/不锈钢高精度流量计公司精选
  • 深入解析:云原生时代的数据流高速公路:深入解剖Apache Pulsar的架构设计哲学
  • 251017
  • DeepResearch代码浅析
  • 2025年连铸机厂家权威推荐榜单:扇形段/大包回转台/钢包中间罐/结晶器总成/拉矫机/引锭杆/输送辊道/液压剪等核心部件专业供应商
  • 拉格朗日插值
  • 2025年10月中国专精特新申报服务机构推荐榜:五强实测
  • 2025年轧钢设备厂家权威推荐榜:冷轧机、热轧机源头生产厂家,技术实力与市场口碑深度解析
  • 正态总体中标准化单样本残差的分布推导
  • 10.16 CSP-S 模拟赛总结
  • 远程无钥匙进入(PKE)技术:便利与安全的完美融合
  • 203. 移除链表元素
  • 灵动岛iPhone状态栏获得高度不对 iOS iPhone14pro iPhone14pro max状态栏获得高度不对
  • string略解
  • 《程序员修炼之道》 阅读笔记二
  • 是时候告别向日葵、Todesk、TeamViewer了,快速搭建自托管服务器RustDesk
  • 史馆