在Vue+SpringBoot应用中实现导入导出excel表功能全过程
作者:江小白12138
这篇文章主要介绍了如何在Vue+SpringBoot应用中实现Excel导入导出功能,前端分三步下载模板、上传文件、调用接口,后端通过FastExcel读取数据并调用UserDao插入,使用/user/importUsers接口完成数据交互,需要的朋友可以参考下
如何在Vue+SpringBoot应用中导入导出excel表
今天,人超级好的组长交给我一个任务,让我完成导入导出用户列表的功能。
后端
1.控制层写导入导出的接口
2.Service层写导入导出的具体方法
以下是导入数据的代码,要用到FastExcel读取数据后,再调用UserDao进行数据的插入
public ResponseDTO<String> importUsers(MultipartFile file){ List<UserImportForm> dataList; try{ dataList = FastExcel.read(file.getInputStream()).head(UserImportForm.class) .sheet() .doReadSync(); for(UserImportForm userImportForm:dataList){ UserEntity userEntity = SmartBeanUtil.copy(userImportForm,UserEntity.class); userDao.insert(userEntity); } }catch(IOException e){ log.error(e.getMessage(),e); throw new BusinessException("数据格式存在问题,无法读取"); } if(CollectionUtils.isEmpty(dataList)){ return ResponseDTO.userErrorParam("数据为空"); } return ResponseDTO.okMsg("成功导入"+dataList.size()+"条,具体数据为:"+ JSON.toJSONString(dataList)); }
前端
1.分为三步
2.第一步下载模板
<a-button @click="downloadExcel"> <download-outlined />第一步:下载模板</a-button>
直接将excel表单放在static文件夹下就可以了,前端就可以直接下载表单
function downloadExcel(){ window.open('http://localhost:1024/user.xlsx'); }
3.第二步选择文件
4.第三步开始导入
<a-button @click="onImportUsers"> <ImportOutlined /> 第三步:开始导入 </a-button>
中间调用后端提供的接口/user/importUsers就可
async function onImportUsers(){ const formData = new FormData(); fileList.value.forEach((file)=>{ formData.append('file',file.originFileObj); }); SmartLoading.show(); try{ let res = await userApi.importUsers(formData); message.success(res.msg); }catch(e){ smartSentry.captureError(e); }finally { SmartLoading.hide(); } }
以上就是在Vue+SpringBoot应用中实现导入导出excel表功能全过程的详细内容,更多关于Vue SpringBoot导入导出excel表的资料请关注脚本之家其它相关文章!