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+iview实现文件上传
Nov 17 Vue.js
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
Dec 01 Vue.js
Vue中computed和watch有哪些区别
Dec 19 Vue.js
vue 在单页面应用里使用二级套嵌路由
Dec 19 Vue.js
为什么推荐使用JSX开发Vue3
Dec 28 Vue.js
vue实现图书管理系统
Dec 29 Vue.js
vue 实现图片懒加载功能
Dec 31 Vue.js
Vue看了就会的8个小技巧
Jan 21 Vue.js
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
vue使用echarts实现折线图
Mar 21 Vue.js
vue如何使用模拟的json数据查看效果
Mar 31 Vue.js
vue实现拖拽交换位置
Apr 07 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
关于PHP5 Session生命周期介绍
2010/03/02 PHP
php 文件上传实例代码
2012/04/19 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
php导出CSV抽象类实例
2014/09/24 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
laravel5.2实现区分前后台用户登录的方法
2017/01/11 PHP
js Flash插入函数免激活代码
2009/03/31 Javascript
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
jquery无刷新验证邮箱地址实现实例
2014/02/19 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
H5图片压缩与上传实例
2017/04/21 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
2018/09/05 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
python实现requests发送/上传多个文件的示例
2018/06/04 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
python3去掉string中的标点符号方法
2019/01/22 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
python 中xpath爬虫实例详解
2019/08/26 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
2020/06/09 Python
Python 如何定义匿名或内联函数
2020/08/01 Python
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
世界领先的艺术图书出版社:TASCHEN
2018/07/23 全球购物
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
法定代表人授权委托书范本
2014/10/07 职场文书
2014年优质护理服务工作总结
2014/11/14 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
2015中秋祝酒词
2015/08/12 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书