Vue项目导入excel表,自动下载导入失败数据的excel表(使用ElementUI upload组件,自定义导入excel表)

action必选参数,上传的地址string
multiple是否支持多选文件boolean
auto-upload是否在选取文件后立即进行上传boolean

auto-upload我们设置为false,避免自动上传,以便使用自定义上传方式。

file-list上传的文件列表, 例如: [{name: 'food.jpg', url: 'https://xxx.cdn.com/xxx.jpg'}]array
on-change文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用function(file, fileList)

2、点击导入按钮,选择文件(点击“打开”触发on-change)

此时可以通过fileChange方法在控制台打印查看文件结构

fileChange(file,fileList){

console.log(file,‘file’)

console.log(fileList,‘fileList’)

}

3、此时我们已经拿到选择的文件,可以自定义上传方式,将其发送至后端服务器

fileChange(file,fileList){

console.log(file,‘file’)

console.log(fileList,‘fileList’)

let url = ‘xxx’ //后端服务器API

let headers = {

‘Content-Type’:‘multipart/form-data’ //自定义上传时,该请求头参数必填

}

let formData = ‘’

for(let i = 0;i < fileList.length;i++){ //遍历文件数组,fileList有可能存在多个文件

formData = new FormData()

formData.append(‘name’,fileList[i].name)

formData.append(‘type’,‘.xlsx’)

formData.append(‘file’,fileList[i].raw)

}

this.$axios({

headers: headers,

method: ‘post’,

data: formData,

url: url,

responseType:‘blob’ //该参数必填,不然下载下来的excel表会提示文件损坏,无法打开

}).then(res=>{

if(res && res.data.size == 0){

//若后台不返回流,说明全部数据导入成功,提示“导入成功”,不自动下载

return

}

//如果后台返回流,说明部分数据导入失败,则自动下载导入失败数据的excel表

let name = ‘导入失败数据.xlsx’ //自定义下载excel表名

let blob = new Blob([res.data])

let url = window.URL.createObjectURL(blob)

let aLink = document.createElement(‘a’)

aLink.style.display = ‘none’

aLink.href = url

//download 属性定义了下载链接的地址。href 属性必须在 标签中指定。

aLink.setAttribute(‘download’,name)

document.body.appendChild(aLink)

aLink.click()

document.body.removeChild(aLink)

window.URL.revokeObjectURL(url)

//下载结束之后可以执行其他操作,如刷新列表、友好提示等

})

}

方法解析

formData是ajax2.0(XMLHttpRequest Level2)新提出的接口,利用FormData对象可以将form表单元素的name与value进行组合,实现表单数据的序列化,从而进行表单元素的拼接,提高工作效率。append 向FormData 中添加新的属性值,如果FormData 对应的属性值存在则覆盖原值,否则新增一项属性值。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

资料过多,篇幅有限,需要文中全部资料可以点击这里获取前端面试资料PDF完整版!

自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。

12543225920)]

[外链图片转存中…(img-uxlnbhvv-1712543225920)]

资料过多,篇幅有限,需要文中全部资料可以点击这里获取前端面试资料PDF完整版!

自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值