Springboot怎么上传excel并将表格数据导入或更新mySql数据库
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章主要讲解了"Springboot怎么上传excel并将表格数据导入或更新mySql数据库",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Spri
千家信息网最后更新 2025年01月24日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 { MapdepartmentMap = 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安全错误
数据库的锁怎样保障安全
襄阳靠谱的软件开发
游戏软件开发行业
发货单打印软件连接服务器
网络安全社会稳定事例
数据库添加对象吗
玖舜软件开发有限公司是真的假的
网络技术前台工作内容
常州互联网科技创新团队
后台做好数据库后如何和前台
互联网数据科技股票
机关单位网络安全应急预案
java软件开发不了怎么办
应用领域服务器分为哪四个
湛江微信软件开发咨询
信创国产数据库包括mysql吗
如何提升网络安全防护
学生运动会成绩数据库
2021网络安全宣传手势舞
九有数据库
学校电信网络安全宣传
警察协同打击网络安全
psv还能连服务器吗
数据库的备份模式
网络安全需要高效管理制度
买一个腾讯云服务器怎么用
初中生网络安全教育主题班会图片
魔兽世界服务器洛丹伦
华媒互动网络技术北京有限公司
网络安全证明怎么写
预防网络安全威胁设计