当前位置: 首页 > Web前端 > vue.js

Excel数据导入组件包

时间:2023-04-01 13:02:08 vue.js

.upload-excel{display:flex;证明内容:居中;边距顶部:100px;.excel-upload-input{显示:无;z-指数:-9999;-upload,.drop{border:1pxdashed#bbb;宽度:350px;高度:160px;文本对齐:居中;行高:160px;}.drop{行高:80px;颜色:#bbb;字体大小:60px;显示:块;}}}excel数据导入组件封装封装了一个导入excel数据的文件。首先,封装一个类似的组件。首先要注意的是,vue-element-admin已经提供了类似的功能。我们只需要修改类似功能组件的代码地址即可,我们需要能够使用和打包excel导入功能需要使用npm包xlsx,所以我们需要安装xlsx插件$npmixlsx会为vue-element提供的导入功能新建一个组件-admin,location:src/components/UploadExcelregistrationglobal导入的excel组件importUploadExcelfrom'./UploadExcel'exportdefault{install(Vue){Vue.component('UploadExcel',UploadExcel)//注册导入excel组件}}修改样式和布局.upload-excel{display:flex;证明内容:居中;边距顶部:100px;.excel-upload-input{显示:无;z-指数:-9999;-upload,.drop{border:1pxdashed#bbb;宽度:350px;高度:160px;文本对齐:居中;行高:160px;}.drop{行高:80px;颜色:#bbb;字体大小:60px;显示:块;}}}excel数据导入创建公共导入页面路由创建公共导入页面并挂载路由src/router/index.js{path:'/import',component:Layout,hidden:true,//hiddenintheleftmenuchildren:[{path:'',//二级路由路径什么都不写,表示二级默认路由组件:()=>import('@/views/import')}]},createimportroutingcomponentsrc/views/import/index.vue解析excel导入代码,封装接口封装导入的api接口/****封装一个导入的接口*****/exportfunctionimportEmployee(data){returnrequest({url:'/user/data',method:'post',data})}implementexcelimport获取导入的excel数据,importexcelinterfaceasyncsuccess({header,results}){constuserRelations={'手机号':'mobile','name':'username','jobnumber':'workNumber'}constarr=[]results.forEach(item=>{constuserInfo={}Object.keys(item).forEach(key=>{userInfo[userRelations[key]]=item[key]})arr.push(userInfo)})awaitimportEmployee(arr)//调用导入接口this.$router.back()}为了使这个页面servemore导入函数,我们可以通过参数判断data(){return{type:this.$route.query.type}},当excel中有日期格式时,实际转换后的值是一个数字,我们需要一种转换formatDate(numb,format){consttime=newDate((numb-1)*24*3600000+1)time.setYear(time.getFullYear()-70)constyear=time.getFullYear()+''constmonth=time.getMonth()+1+''constdate=time.getDate()-1+''if(format&&format.length===1){returnyear+format+month+format+date}returnyear+(month<10?'0'+month:month)+(date<10?'0'+date:date)}Summary这样,我们就可以开始我们的项目了。js提升第四版链接:https://pan.baidu.com/s/18P8k...可以加公众号获取提取码。不懂的请加q群147936127交流或vx:ltby52119,谢谢~