、界面操作
1、点击左侧菜单,选择用户管理,点击右侧工作区的导入
2、下载的数据模版
3、配置好上传数据模版后,选择文件
4、导入成功
实现代码拆解
1、导入按钮代码
<a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import"> <i class="fa fa-upload"></i> 导入 </a>
具体路径截图:
// 导入数据 importExcel: function(formId, width, height) { table.set(); var currentId = $.common.isEmpty(formId) ? 'importTpl' : formId; var _width = $.common.isEmpty(width) ? "400" : width; var _height = $.common.isEmpty(height) ? "230" : height; top.layer.open({ type: 1, area: [_width + 'px', _height + 'px'], fix: false, //不固定 maxmin: true, shade: 0.3, title: '导入' + table.options.modalName + '数据', content: $('#' + currentId).html(), btn: ['<i class="fa fa-check"></i> 导入', '<i class="fa fa-remove"></i> 取消'], // 弹层外区域关闭 shadeClose: true, btn1: function(index, layero){ var file = layero.find('#file').val(); if (file == '' || (!$.common.endWith(file, '.xls') && !$.common.endWith(file, '.xlsx'))){ $.modal.msgWarning("请选择后缀为 “xls”或“xlsx”的文件。"); return false; } var index = top.layer.load(2, {shade: false}); $.modal.disable(); var formData = new FormData(layero.find('form')[0]); $.ajax({ url: table.options.importUrl, data: formData, cache: false, contentType: false, processData: false, type: 'POST', success: function (result) { if (result.code == web_status.SUCCESS) { $.modal.close(index); $.modal.closeAll(); $.modal.alertSuccess(result.msg); $.table.refresh(); } else if (result.code == web_status.WARNING) { $.modal.close(index); $.modal.enable(); $.modal.alertWarning(result.msg) } else { $.modal.close(index); $.modal.enable(); $.modal.alertError(result.msg); } }, complete: function () { layero.find('#file').val(''); } }); } }); },
如上述,是具体导入执行函数。
如上述代码第7行top.layer.open。打开一个层,其中层的大小通过如下两段代码设置
var _width = $.common.isEmpty(width) ? "400" : width;
var _height = $.common.isEmpty(height) ? "230" : height;
如上述代码第19行,绑定提交按钮方法。具体处理逻辑:
1、判断文件后缀是否为 “xls”或“xlsx”的文件。
2、设置遮罩层。
3、将文件上传到后台。其中后台的路径配置是url: table.options.importUrl,
importUrl的配置在user.html里面的options配置里面
java 后台处理方法
上传的处理函数的文件处理路径入下截图:
@Log(title = "用户管理", businessType = BusinessType.IMPORT)@RequiresPermissions("system:user:import")@PostMapping("/importData")@ResponseBodypublic AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception{ ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); List<SysUser> userList = util.importExcel(file.getInputStream()); String message = userService.importUser(userList, updateSupport, getLoginName()); return AjaxResult.success(message); }
MultipartFile file: 读取上传文件的数据。
ExcelUtil:初始化execl处理的工具类
util.importExcel(file.getInputStream());读取execl文件,并返回List<SysUser>对象
userService.importUser:将列表数据插入到数据库表里面。
数据库表模型
CREATE TABLE `sys_user` ( `user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID', `dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID', `login_name` varchar(30) NOT NULL COMMENT '登录账号', `user_name` varchar(30) DEFAULT '' COMMENT '用户昵称', `user_type` varchar(2) DEFAULT '00' COMMENT '用户类型(00系统用户 01注册用户)', `email` varchar(50) DEFAULT '' COMMENT '用户邮箱', `phonenumber` varchar(11) DEFAULT '' COMMENT '手机号码', `sex` char(1) DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)', `avatar` varchar(100) DEFAULT '' COMMENT '头像路径', `password` varchar(50) DEFAULT '' COMMENT '密码', `salt` varchar(20) DEFAULT '' COMMENT '盐加密', `status` char(1) DEFAULT '0' COMMENT '帐号状态(0正常 1停用)', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)', `login_ip` varchar(128) DEFAULT '' COMMENT '最后登录IP', `login_date` datetime DEFAULT NULL COMMENT '最后登录时间', `pwd_update_date` datetime DEFAULT NULL COMMENT '密码最后更新时间', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='用户信息表';
未来计划
1、ruoyi非分离版本拆解
2、ruoyi-vue-pro:讲解工作流
3、ruoyi-vue-pro:支付模块,电商模块
4、基于ruoyi-vue-pro项目开发
5、JEECG低代码开发平台
请关注我,本星球会持续推出更多的开源项目代码解析,如有更好的意见请留言回复或者私信。
来源:
互联网
本文观点不代表源码解析立场,不承担法律责任,文章及观点也不构成任何投资意见。
评论列表