Vue + iView实现Excel上传功能的完整代码

作者:牧马少女 时间:2024-05-29 22:43:13 

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;
               })
},
       }
   }

3、页面效果如下

(1)进入页面默认展示的样子

Vue + iView实现Excel上传功能的完整代码

 (2)选中要上传的Excel

Vue + iView实现Excel上传功能的完整代码

 (3)“点击开始上传”之后

Vue + iView实现Excel上传功能的完整代码

 Vue + iView实现Excel上传功能的完整代码

来源:https://blog.csdn.net/qq_36069339/article/details/118093481

标签:vue,iview,excel,上传
0
投稿

猜你喜欢

  • js 删除数组的几种方法小结

    2024-04-22 22:42:37
  • python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)

    2022-07-26 19:08:11
  • 人工智能学习Pytorch梯度下降优化示例详解

    2023-02-11 16:28:02
  • ASP FSO显示特殊文件夹的实现代码(畸形目录名、UNC路径)

    2012-11-30 20:10:46
  • 详解Python3 对象组合zip()和回退方式*zip

    2021-03-01 11:14:09
  • python函数运行内存时间等性能检测工具

    2021-04-08 02:24:00
  • laravel修改用户模块的密码验证实现

    2023-06-14 12:37:18
  • Python OpenCV实现图形检测示例详解

    2023-05-23 15:36:39
  • Typescript3.9 常用新特性一览(推荐)

    2024-04-18 10:56:16
  • Python练习之读取XML节点和属性值的方法

    2021-03-25 19:01:06
  • 使用OpenCV circle函数图像上画圆的示例代码

    2021-03-12 17:30:41
  • 如何以及何时使用sIFR

    2008-03-07 12:38:00
  • Radio 单选JS动态添加的选项onchange事件无效的解决方法

    2024-04-28 09:51:03
  • 你凭什么说你的网站用户体验好

    2011-03-31 17:08:00
  • Mysql 服务 1067 错误 的解决方法:修改mysql可执行文件路径

    2024-01-27 04:06:09
  • 深入透析样式表滤镜(上)

    2011-06-14 09:48:40
  • Python定时任务实现方案

    2021-05-05 04:11:54
  • python 如何读取列表中字典的value值

    2021-01-27 15:48:31
  • 两种与SQL Server数据库交换数据的方法

    2008-12-10 15:39:00
  • Mysql获取当前日期的前几天日期的方法

    2024-01-16 01:22:31
  • asp之家 网络编程 m.aspxhome.com