失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 使用hutool工具进行导入导出excel表格

使用hutool工具进行导入导出excel表格

时间:2023-08-28 19:30:34

相关推荐

使用hutool工具进行导入导出excel表格

如何在后台添加导入导出表格的功能呢,本期的文章将会带领小伙伴们一起实现此功能

1.先引入hutool的相关依赖

<!--hutool--><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>4.1.2</version></dependency>

2.导出

创建一个Controller进行测试

//表格导出接口@GetMapping("/export")public void export(HttpServletResponse response) throws IOException {//查询所有用户List<User> list= userService.list();//在内存操作,写到浏览器ExcelWriter writer= ExcelUtil.getWriter(true);//自定义标题别名writer.addHeaderAlias("username","用户名");writer.addHeaderAlias("password","密码");writer.addHeaderAlias("nickname","昵称");writer.addHeaderAlias("email","邮箱");writer.addHeaderAlias("phone","电话");writer.addHeaderAlias("address","地址");writer.addHeaderAlias("createTime","创建时间");//默认配置writer.write(list,true);//设置content—typeresponse.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset:utf-8");//设置标题String fileName= URLEncoder.encode("用户信息","UTF-8");//Content-disposition是MIME协议的扩展,MIME协议指示MIME用户代理如何显示附加的文件。response.setHeader("Content-Disposition","attachment;filename="+fileName+".xlsx");ServletOutputStream outputStream= response.getOutputStream();//将Writer刷新到OutPutwriter.flush(outputStream,true);outputStream.close();writer.close();}

测试结果如下

Vue前端使用这个代码进行访问即可

//点击函数exp, 导出表格exp(){window.open("http://localhost:9090/user/export")}

3.导入

创建一个Controller进行测试

因为我前面导出设置了别名,所以这里我选择用第二种方式,

接下来可以去postman验证是否能实现功能

/*** 导入excel* @param file*/@PostMapping("/import")public void importExcel(MultipartFile file) throws IOException {//1.第一种 头必须和实体(英文)一样//文件处理成io流InputStream in = file.getInputStream();// //io流给ExcelReaderExcelReader excelReader=ExcelUtil.getReader(in);// //读取数据且转化为list// List<User> list = excelReader.readAll(User.class);//2.第二种导入方式//忽略第一行头(第一行是中文的情况),直接读取表的内容List<List<Object>> list = excelReader.read(1);List<User> listUser = CollUtil.newArrayList();for (List<Object> row: list) {User user=new User();user.setUsername(row.get(0).toString());user.setPassword(row.get(1).toString());user.setNickname(row.get(2).toString());user.setNickname(row.get(3).toString());user.setPhone(row.get(4).toString());user.setAddress(row.get(5).toString());listUser.add(user);// ****类似一一对应****}//批量注册进数据库userService.saveBatch(listUser);}

前端的话我是用的elemen-ui

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

on-success是一个钩子函数,弹了一个插入成功的信息跟刷新页面的操作

//导入,钩子函数进行页面的提示跟成功后页面的刷新handleImportSuccess(){this.$message.success("导入成功")this.load();}

4.效果图为

5.本期的表格导入导出就分享到这啦,如果有其他需要的小伙伴可以评论区留言,代码代码敲不停

最后

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

小编已加密:aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==出于安全原因,我们把网站通过base64编码了,大家可以通过base64解码把网址获取下来。

如果觉得《使用hutool工具进行导入导出excel表格》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。