Springboot怎么上传excel并将表格数据导入或更新mySql数据库
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要讲解了"Springboot怎么上传excel并将表格数据导入或更新mySql数据库",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Spri
千家信息网最后更新 2026年11月04日Springboot怎么上传excel并将表格数据导入或更新mySql数据库
这篇文章主要讲解了"Springboot怎么上传excel并将表格数据导入或更新mySql数据库",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Springboot怎么上传excel并将表格数据导入或更新mySql数据库"吧!
1.在pom.xml文件中导入注解,主要利用POI
org.apache.poi poi-ooxml 3.9 commons-fileupload commons-fileupload 1.3.1 commons-io commons-io 2.4
2.Controller接口
@PostMapping("/save") public String addUser(@RequestParam("file") MultipartFile file) { String fileName = file.getOriginalFilename(); try { return sysService.batchImport(fileName, file); } catch (MyException e) { e.printStackTrace(); return e.getMessage(); }catch(Exception e){ e.printStackTrace(); return "文件异常,导入失败"; } }3.服务层接口
boolean import(String fileName, MultipartFile file) throws Exception;
4.业务层实现类
@Transactional(readOnly = false,rollbackFor = Exception.class) @Override public boolean import(String fileName, MultipartFile file) throws Exception { Map departmentMap = findDepartment(); Map roleMap = findRole(); boolean notNull = false; List userList = new ArrayList(); if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) { throw new MyException("上传文件格式不正确"); } boolean isExcel2003 = true; if (fileName.matches("^.+\\.(?i)(xlsx)$")) { isExcel2003 = false; } InputStream is = file.getInputStream(); Workbook wb = null; if (isExcel2003) { wb = new HSSFWorkbook(is); } else { wb = new XSSFWorkbook(is); } Sheet sheet = wb.getSheetAt(0); if(sheet!=null){ notNull = true; } User user; for (int r = 1; r <= sheet.getLastRowNum(); r++) { Row row = sheet.getRow(r); if (row == null){ continue; } user = new User(); if( row.getCell(0).getCellType() !=1){ throw new MyException("导入失败(第"+(r+1)+"行,ID单元格格式请设为文本格式)"); } String id = row.getCell(0).getStringCellValue(); if(id==null || id.isEmpty()){ throw new MyException("导入失败(第"+(r+1)+"行,ID未填写)"); } String name = row.getCell(1).getStringCellValue(); if(name==null || name.isEmpty()){ throw new MyException("导入失败(第"+(r+1)+"行,姓名未填写)"); } String department = row.getCell(2).getStringCellValue(); if(departmentMap.get(department)==null){ throw new MyException("导入失败(第"+(r+1)+"行,不存在此单位或单位未填写)"); } String role = row.getCell(3).getStringCellValue(); if(roleMap.get(role)==null){ throw new MyException("导入失败(第"+(r+1)+"行,不存在此角色或角色未填写)"); } Date date; if(row.getCell(4).getCellType() !=0){ throw new MyException("导入失败(第"+(r+1)+"行,入职日期格式不正确或未填写)"); }else{ date = row.getCell(4).getDateCellValue(); } user.setId(id); user.setName(name); user.setDepartmentId((int) departmentMap.get(department)); user.setRoleId((int) roleMap.get(role)); user.setDate(date); userList.add(user); } for (User user : userList) { String id = user.getId(); int cnt = userMapper.selectById(id); if (cnt == 0) { userMapper.addUser(user); } else { userMapper.updateUserById(user); } } return notNull; } 感谢各位的阅读,以上就是"Springboot怎么上传excel并将表格数据导入或更新mySql数据库"的内容了,经过本文的学习后,相信大家对Springboot怎么上传excel并将表格数据导入或更新mySql数据库这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
数据
数据库
表格
并将
更新
格式
文件
学习
内容
单位
接口
角色
业务
单元
姓名
就是
思路
情况
文本
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州淘业互联网络科技
科技和互联网公司
厦门中拓互联网络科技有限公司
互联网和科技创新
互联网金融 科技金融
远拓互联网科技
广州紫鲸互联网科技
互联网金融科技委员会
互联网 科技馆
剑昆互联网络科技有限公司临桂
互联网对科技的发展
互联网科技人工智能实验室
佛山市翊博互联网络科技有限公司
特约风豹互联网科技为什么扣费
互联网第三次科技革命特征
山东星卡互联网科技有限公司官网
扫呗互联网科技有限公司
互联网科技新闻
湖北辰鑫科技互联网
深圳互联网科技园地址
上海卓越科技互联网
互联网和科技技术
腾讯阿里互联网科技
四个字互联网科技公司取名
剑昆互联网络科技有限公司临桂
互联网企业和科技型企业
佳云科技和互联网广告
上海宁丞科技互联网
江苏互联网科技小贷
同城互联网络科技