Vue + iView实现Excel上传功能的完整代码
作者:牧马少女 发布时间:2024-05-29 22:43:13
标签:vue,iview,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;
})
},
}
}
3、页面效果如下
(1)进入页面默认展示的样子
(2)选中要上传的Excel
(3)“点击开始上传”之后
来源:https://blog.csdn.net/qq_36069339/article/details/118093481


猜你喜欢
- 一、错误代码:摘要和详细的url获取不到import asynciofrom bs4 import BeautifulSoupimport
- 1.前言(闲话)最近在做电磁炮,发现题目需要用到颜色跟踪,于是花了一点时间学了一下OpenMV,只学习OpenMV是远远不够的,还需要实现与
- 在python中读取一个文本文件相信大家都比较熟悉了,但如果我们遇到一个二进制文件要读取怎么办呢?我们尝试使用 Python 中的内置 op
- 1、表的主键、外键必须有索引;2、数据量超过300的表应该有索引;3、经常与其他表进行连接的表,在连接字段上应该建立索引;4、经常出现在Wh
- 1.什么是内存逃逸在一段程序中,每一个函数都会有自己的内存区域分配自己的局部变量,返回值,这些内存会由编译器在栈中进行分配,每一个函数会分配
- 在html中引入外部js文件,并调用js文件中的带参函数1 项目结构2 编写a.js、test.html//a.jsfunction abc
- 本片博文主要介绍在Python3 环境下把用户名密码编码成字符串。代码如下:import base64def get_basic_auth_
- JavaScript游戏开发之键盘控制层的移动截图:<html> <head> <meta http-equi
- tkinter获取复选框(Checkbutton)的值定义GUI:from tkinter import *# 初始化Tk()myWindo
- 1. watch 与 computed 的巧妙结合如上图,一个简单的列表页面。你可能会这么做: created(){ this.
- Labelme简要介绍通过labelme对图进行标注后,得到的是json文件,而Yolov5对数据进行模型构建的时候,读取需要的是txt格式
- 学习python字符串方法的使用,对书中列举的每种方法都做一个试用,将结果记录,方便以后查询。(1) s.capitalize() ;功能:
- git克隆历史版本(下载指定版本的代码)步骤一:首先git clone 当前项目至文件夹步骤二:cd 进入clone下来的项目文件夹内步骤三
- 前言RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。MQ全称
- pytorch定义新的自动求导函数在pytorch中想自定义求导函数,通过实现torch.autograd.Function并重写forwa
- 可能出现的原因有:◆源数据库或目标数据库为 SQL Server 6.5 版。连接到 Access 项目的当前 SQL 服务器和要将数据库转
- 一、待搜索图二、测试集三、new_similarity_compare.py# -*- encoding=utf-8 -*-from ima
- 1. views.py定义views视图函数,将数据存入字典。并用压缩为json格式,dumps,并return。import jsonde
- 因为虽然名字很陌生,但我们每天都在用,每天都有无数潜在的坑被埋下。包括我本人也犯过同样的错误,当时代码已经合并并发布了,当我意识到出了什么问
- 本文实例为大家分享了python3实现名片管理系统的具体代码,供大家参考,具体内容如下系统主要是:1.新增名片 2.显示全部 3.查询名片