(十一)Hutool插件实现文件导入导出--基于SpringBoot+MySQL+Vue+ElementUI+Mybatis前后端分离面向小白管理系统搭建

写在前面的话:

这里是为2023届本专科学生完成一个管理系统(主要是后台)的连续更新博客。持续时间为20天,每日练习时间约2-3小时。默认已有系统开发的基础知识,如SpringBoot、数据库、HTML、CSS、JavaScript等。

任务十 VUE侧边菜单栏导航https://blog.csdn.net/wdyan297/article/details/128749326?spm=1001.2014.3001.5501

任务十一 应用Hutool插件实现文件导入导出

任务十 进行了侧边菜单导航栏的维护,整个项目的结构和菜单导航的逻辑全部理顺了,一个后台管理系统的框架全部搭好了,后续就是继续添加页面,维护角色权限等内容了。本次任务我们作为一个拓展训练,使用Hutool插件实现文件导入导出。文件导入导出有的网站有需求,有的小型网站没有需求。通过本次任务,大家能够:
(1)基本学会使用Hutool插件实现文件导入导出。

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
官方网址:https://hutool.cn/docs/#/poi/Excel%E7%94%9F%E6%88%90-ExcelWriter

1. 添加依赖,并更新maven。

<!--导出 导入-->
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.7.20</version>
    </dependency>
    <dependency>
         <groupId>org.apache.poi</groupId>
         <artifactId>poi-ooxml</artifactId>
         <version>5.1.0</version>
     </dependency>

注意: 如果在运行的时候出现依赖相关的错误,注意修改以下版本就可以。

2. UserContrller中添加一个导出接口

在UserContrller中添加一个导出接口。

 /*导出接口*/
    @GetMapping("/export")
    public void export(HttpServletResponse response) throws Exception{
        //从数据库查询出所有数据,如果需要获取其他的数据,就调用其他的方法
        List<User> list=userService.list();
        //通过工具类创建write 写出磁盘路径
        //ExcelWriter writer= ExcelUtil.getWriter(filesUpLoadPth + "/用户信息.xlsx");
        //这里的参数也可以设置绝对路径,本项目实现网页的下载,省略下载路径
        ExcelWriter writer= ExcelUtil.getWriter(true);
        writer.addHeaderAlias("username","用户名");//用别名的方法,实现Excel文件的标题是中文的
        writer.addHeaderAlias("password","密码");
        writer.addHeaderAlias("nickname","昵称");
        writer.addHeaderAlias("email","邮箱");
        writer.addHeaderAlias("phone","电话");
        writer.addHeaderAlias("address","地址");
        writer.addHeaderAlias("created_time","创建时间");
        //一次性写出list内部的对象到excel,强制输出标题
        writer.write(list,true);
        String filename= URLEncoder.encode("用户信息","UTF-8");
        //设置浏览器弹出响应格式,输出xlsx格式,官网也可以查看输出xls格式的方法
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
        response.setHeader("Content-Disposition","attachment;filename="+ filename+".xlsx");
        ServletOutputStream out=response.getOutputStream();
        writer.flush(out, true);
        out.close();
        writer.close();
    }

3.运行项目

运行IDEA之后,直接到网页中输入地址:http://localhost:8084/user/export/,就可以出现“用户信息.xlsx”文件下载。
在这里插入图片描述
打开已经下载的“用户信息.xlsx”文件,可以看到数据表中的所有数据都已经完成下载,如果需要根据选择条目、分页下载等,只要修改接口中的查询数据接口即可。

4. UserContrller中添加一个导入接口

继续在UserContrller中添加一个导入接口。

/*excel导入*/
    @PostMapping("/import")
    public Boolean imp(MultipartFile file) throws Exception{  //注意方法名不能是import,这是一个关键字
        InputStream inputStream=file.getInputStream();
        ExcelReader reader=ExcelUtil.getReader(inputStream);
        List<User> list=reader.readAll(User.class);
        System.out.println(list);
        userService.saveBatch(list);//save是单条插入,saveBatch批量导入
        return true;
    }

5.使用postman进行测试

注意: KEY选择“file”文件。
在这里插入图片描述
另外:这里的导入模板文件,没有做特殊设置,直接可以使用前面导出的那个“用户信息.xlsx”,将里面的内容清空,然后填写或者复制上自己需要的内容即可。但是:这里暂时设置的为英文标题,如果需要中文字段名称,可以参考官网,改成能识别中文标题的模板文件。

6.为导出按钮添加事件exp

(1)为“导出"按钮添加事件exp。

<el-button type="primary" @click="exp">导出<i class="el-icon-top"></i></el-button>

(2) 编写exp方法。

exp(){
    window.open("http://localhost:8084/user/export");
},

(3)运行项目,实现所有数据的导出。
在这里插入图片描述

7. 为导入按钮添加事件

(1)在elementUI中找到upload组件。
在这里插入图片描述
(2)升级导入按钮。

<el-upload
      action="http://localhost:8084/user/import" :show-file-list="false" accept="xlsx" :on-success="handleExcelImportSuccess" style="display: inline-block">
      <el-button type="primary" style="margin-left:5px">导入<i class="el-icon-bottom"></i>       </el-button>
 </el-upload>

(3)编写钩子函数handleExcelImportSuccess。

handleExcelImportSuccess(){ //实现导入
         this.$message.success("导入成功");
         this.load();
  },

8. 运行项目

运行项目实现数据导出导入。
在这里插入图片描述

注意: 导入个模板页标头应该是英文与表中字段相对应。

任务总结:

本次任务,主要完成并掌握以下内容:
(1)Hutool插件实现文件导入导出。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
摘 要 在如今这个人才需求量大的时代,各方企业为了永葆企业的活力与生机,在不断开 拓进取的同时,又广泛纳用人才,为企业的长久发展奠定了基础。于是,各个企业与部 门机构,都不可避免地会接触到人力资源管理的问题。 Hrm 是一款人力资源管理系统,其主要功能模块有员工个人信息修改、请假、员工 的薪资管理、考勤管理、社保管理。其中考勤管理实现了员工考勤状态的修改与员工考 勤月报表的导出,以及通过员工考勤记录的导入实现员工考勤状态的判断。社保管理, 主要实现了员工社保的计算以及明细的修改。薪资管理,实现了员工工资的调整,以及 员工月工资报表的导出。 本项目采用了前后端分离的技术,前端是基于 Vue+ElementUI+Axios 开发的,后端 则是基于 Spring Boot+MyBatis Plus+ Jwt+Mysql。本项目实现了权限菜单管理,通过员 工的权限动态渲染菜单,并动态生成路由。通过 Jwt token 来判断当前登录的员工以及 员工的登录状态。 关键词:人力资源管理系统Spring BootVue,权限管 人力资源管理是企业运营中必不可少的一环,它关系到企业的前途与发展。尤其对 于中小微企业来说,对企业的发展有着举足轻重的作用。随着近年来,政府对创业项目 的大力扶持,我国创业型企业蓬勃发展。据统计,2019 年,我国创业企业数量已达 1810 万余家,占全国企业数的 97%,截止 2020 年,我国创业企业数量达到了 2030 万,同比 增长 10%。虽然我国创业企业的基数在不断增大,但是能够长久存活的企业却少之又少。 在创业初期,随着企业初具规模,大多数创业者开始将主要精力集中在市场调研和 开发产品上,而忽略了团队的内部管理。据调查,中国企业的平均寿命是 7.02 年,但 70%的企业存活不超过 5 年,究其原因有很多,其中最重要的一点就是,人力资源管理 未能有效推动企业向前发展
权限管理系统是一种用于管理用户权限和角色的系统,可以根据用户的身份和角色来控制其访问系统中的各种资源。基于SpringBootVue和Redis的前后端分离模式,可以更好地实现权限管理系统的功能。 在这个系统中,SpringBoot作为后端框架,提供了强大的功能和稳定的性能,可以处理用户的请求并进行权限验证。Vue作为前端框架,提供了友好的界面和良好的用户体验,可以让用户方便地进行权限管理操作。而Redis作为缓存数据库,可以用来存储权限信息和用户的登录状态,加快系统的响应速度和提高系统的性能。 在权限管理系统中,我们可以使用RBAC(基于角色的权限控制)模型,将用户分配到不同的角色,再将角色分配到不同的权限,从而实现对用户访问资源的控制。通过这种方式,可以实现灵活的权限管理,并且可以根据实际需求动态地调整用户的权限和角色。 通过使用SpringBootVue,我们可以实现前后端分离,让前端和后端分别进行开发和维护,降低了系统的耦合度,同时也增加了系统的灵活性和可维护性。而通过使用Redis,我们可以充分利用其高速的读取和写入能力,有效地提升系统的性能和响应速度。 综上所述,基于SpringBootVue和Redis的权限管理系统,可以实现灵活、高效和安全的权限管理功能,满足用户对于权限管理的各种需求。同时,前后端分离模式也使得系统更加灵活和易于维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值