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


Posted in Vue.js onJune 22, 2021

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上传功能的完整代码

以上就是Vue + iView实现Excel上传的详细内容,更多关于vue iview excel上传的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
Nov 18 Vue.js
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
如何实现vue的tree组件
Dec 03 Vue.js
Vue+element-ui添加自定义右键菜单的方法示例
Dec 08 Vue.js
vue 通过base64实现图片下载功能
Dec 19 Vue.js
vue实现可移动的悬浮按钮
Mar 04 Vue.js
Vue3 Composition API的使用简介
Mar 29 Vue.js
vue实现移动端div拖动效果
Mar 03 Vue.js
vue ref如何获取子组件属性值
Mar 31 Vue.js
vue判断按钮是否可以点击
Apr 09 Vue.js
vue实力踩坑之push当前页无效
Apr 10 Vue.js
vue使用element-ui按需引入
May 20 Vue.js
Vue vee-validate插件的简单使用
Jun 22 #Vue.js
vue3使用vue-router的完整步骤记录
一篇文章学会Vue中间件管道
Jun 20 #Vue.js
Vue过滤器(filter)实现及应用场景详解
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 #Vue.js
Vue中插槽slot的使用方法与应用场景详析
You might like
PHP.MVC的模板标签系统(四)
2006/09/05 PHP
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
PHP可逆加密/解密函数分享
2012/09/25 PHP
基于JQuery+PHP编写砸金蛋中奖程序
2015/09/08 PHP
通过源码解析Laravel的依赖注入
2018/01/22 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
jquery实现显示已选用户
2014/07/21 Javascript
Javascript学习指南
2014/12/01 Javascript
教你如何终止JQUERY的$.AJAX请求
2016/02/23 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
2017/04/01 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
iconfont的三种使用方式详解
2018/08/05 Javascript
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
Python之自动获取公网IP的实例讲解
2017/10/01 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
关于解决iframe标签嵌套问题的解决方法
2020/03/04 HTML / CSS
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
党员学习十八大感想
2014/01/17 职场文书
英文求职信写作小建议
2014/02/16 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
学校教师安全责任书
2014/07/23 职场文书
关于感恩的演讲稿400字
2014/08/26 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
创业计划书之废品回收
2019/09/26 职场文书
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript