您好,登錄后才能下訂單哦!
這篇文章主要講解了“Vue怎么實現Excel上傳功能”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Vue怎么實現Excel上傳功能”吧!
1、HTML部分
<Col span="2">上傳文件:</Col> <Col span="22" class="uploadExcelBox"> <Upload ref="uploadExcel" :loading="uploadLoading" :action="uploadFileUrl" accept="xlsx,xls" :format="uploadFormat" :before-upload="beforeImgFile" :on-success="successImgFile" :on-error="errorImgFile" :show-upload-list="true"> <Button type="success">上傳附件</Button> </Upload> <div v-if="uploadingFile !== null">待上傳文件: <span class="blueFont">{{ fileName }}</span> <Button @click="uploadFun(index)" :loading="loadingStatus" class="manualUploadBtn">{{ loadingStatus ? '上傳中...' : '點擊開始上傳' }}</Button> </div> </Col>
2、JS部分
<script> // import excel from '@/libs/excel' import service from '@/libs/request' //用來取當前域名 import reportFormApi from '@/api/reportForm' export default { data() { return { uploadLoading:false,//上傳控件loading狀態 uploadFileUrl: "", uploadFormat:['xlsx','xls'], uploadingFile:null,//待上傳的文件 loadingStatus:false,//upload組件的狀態 fileName:"",//待上傳文件的名稱 } }, mounted() { this.uploadFileUrl = service.apiUrl + "/qingximaster/winInfo/execlAdd";//上傳Excel的接口路徑,后端人員提供。 }, methods: { // 圖片上傳之前 beforeImgFile(file) { // console.log(file); const fileExt = file.name.split('.').pop().toLocaleLowerCase() if (fileExt === 'xlsx' || fileExt === 'xls') { var formdata = new FormData(); formdata.append("file",file); this.fileName = formdata.get('file').name;//通過formdata.get('file')方法,可以取file文件里的信息,例如Excel的文件名。 this.uploadingFile = formdata;//注意:這個將作為參數傳給接口實現上傳。傳給接口的file不需要 formdata.get('file'),直接傳file。 } else { this.$Notice.warning({ title: '文件類型錯誤', desc: '文件:' + file.name + '不是EXCEL文件,請選擇后綴為.xlsx或者.xls的EXCEL文件。' }) } return false }, // 上傳成功 successImgFile(response, file, fileList) { this.$Notice.success({ title: '提示', desc: '上傳成功!' }) }, // 上傳失敗 errorImgFile(error, file, fileList) { this.$Notice.success({ title: '提示', desc: '上傳失敗!' }) console.log(error); }, uploadFun(index){//調接口上傳Excel this.loadingStatus = true; reportFormApi.uploadExcel({ url: this.uploadFileUrl, file: this.uploadingFile }).then(res =>{ this.uploadingFile = null; this.fileName = ""; if(res.code==0){ this.infoList[index].content = JSON.stringify(res.data); // console.log(this.infoList[index].content); this.$Message.success("上傳成功!"); }else{ this.$Message.error(res.message); } }).finally(()=>{ this.loadingStatus = false; this.uploadLoading = false; }) }, } }
感謝各位的閱讀,以上就是“Vue怎么實現Excel上傳功能”的內容了,經過本文的學習后,相信大家對Vue怎么實現Excel上傳功能這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。