25.使用POI实现Excel导入
数据导入主要涉及三个步骤:
文件上传;
Excel 解析;
数据插入。
第三步就比较简单了,我们这里重点来看看前两个步骤。
25.1 文件上传
文件上传采用了 ElementUI 中的 Upload 控件,如下:
<el-upload
:show-file-list="false"
accept="application/vnd.ms-excel"
action="/emp/basic/importEmp"
:on-success="fileUploadSuccess"
:on-error="fileUploadError" :disabled="fileUploadBtnText=='正在导入'"
:before-upload="beforeFileU...
24.axios下载文件
一般情况下我们用axios请求数据,返回的都是字符串、json、xml 等数据,下载的话基本都是二进制数据,常见的解决方案如下:
var iframe = document.createElement("iframe");
iframe.style.display = 'none';
iframe.src = "/emp/basic/exportEmp";
iframe.onload=function () {
document.body.removeChild(iframe);
}
document.body.appendChild(iframe);
即动态创建一个 iframe,src 即请求地址,不过我感觉还是没必要这么麻烦,我这里采用了下面这种方式:
window....
23.POI生成Excel
整体来说,Excel有 .xls 和 .xlsx ,那么在 POI 中这两个也对应两个不同的类,但是类名不同,方法基本都是一致的,因此我这里将只介绍 .xls 一种。
整体来说,可以分为如下七个步骤:
创建 Excel 文档
HSSFWorkbook workbook = new HSSFWorkbook();
设置文档的基本信息(可选)
//获取文档信息,并配置
DocumentSummaryInformation dsi = workbook.getDocumentSummaryInformation();
//文档类别
dsi.setCategory("员工信息");
//设置文档管理员
dsi.setManager("江南一点雨");
//设置组织机...
22.SpringMVC文件下载的两种方式
servlet 里边的下载很多小伙伴应该都很熟悉,用 HttpServletResponse 往出写即可,当然更多时候我们使用 apache 上的开源工具类 commons-io 来实现,核心代码如下:
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String fileName = req.getParameter("file");
String downloadFolder = req.getServletContext().getRealPath("/WEB-INF/download");...
21.Excel导入导出效果图
首先员工基本资料页面多了两个按钮:
导出时浏览器会提示下载:
上传效果:
生成的 Excel 如下:
扫码关注微信公众号 江南一点雨,回复 2TB,获取超 2TB Java 学习教程~
20.高级搜索功能介绍
上个版本我们已经完成了基本的搜索功能,可以通过员工姓名进行搜索,为了使搜索条件更丰富,我增加了高级搜索功能,架子已经搭建好了,小伙伴如果觉得高级搜索的条件还是不够,想要继续增加,直接增加条件即可,当然添加了新的搜索条件之后,前后端要同时更新。
效果图如下:
需要注意的是高级搜索和普通搜索不可以同时使用。另外当用户关闭高级搜索框后,高级搜索条件会自动清空。
扫码关注微信公众号 江南一点雨,回复 2TB,获取超 2TB Java 学习教程~
19.SpringBoot中自定义参数绑定
正常情况下,前端传递来的参数都能直接被 SpringMVC 接收,但是也会遇到一些特殊情况,比如 Date 对象,当我的前端传来的一个日期时,就需要服务端自定义参数绑定,将前端的日期进行转换。自定义参数绑定也很简单,分两个步骤:
自定义参数转换器
自定义参数转换器实现 Converter 接口,如下:
public class DateConverter implements Converter<String,Date> {
private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
@Override
public Date conve...
18.员工基本信息管理功能介绍
由于员工的高级信息依赖于其他模块,因此这里暂时没有做这个功能,只做了普通的增删改查,后面可能还会再添加一个高级搜索功能(暂定)。目前完成的功能如下:
添加员工
修改员工信息
删除员工
除此之外,还有分页、批量删除、基本搜索等功能。
扫码关注微信公众号 江南一点雨,回复 2TB,获取超 2TB Java 学习教程~
17.[题外话]利用git标签回退至任意版本
由于本项目在不停的更新,小伙伴们的需求不尽相同,有的小伙伴可能只需要看权限管理模块,有的小伙伴需要看部门管理等等。因此,我现在给每一次的提交都打了 tag,下面我简单介绍下 tag 的用法。
当小伙伴从 GitHub 上将项目克隆下来之后,可以通过 git tag 命令来查看当前有哪些 tag,如下:
tag 的版本号就是提交的日期,小伙伴可以根据 readme 文档中的更新记录来确定你想回到哪一个版本中,比如我想退回到 v20180107 这个版本去,此时通过 git show v20180107 命令来查看对应的版本号,如下:
commit 后面的就是对应的提交版本号,然后通过 git reset --hard 5eb9cf18a 命令即可回到只有权限管理模块的时代。...
共计 55 篇文章,6 页。