做后台管理系统 经常会遇到导出列表excel的功能
一种方法可以用 window.open('下载地址,参数query拼接', '_blank')
还可以你请求服务端接口让你服务端返回给你下载地址 直接下载 不用再地址栏里拼接参数
最后一种 最近刚遇到的 之前用前两种方式比较多 首先请求服务端接口 get请求 query参数 请求完成之后 new Blob对象
const blob = new Blob([response.data],{
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
})// type这里表示xlsx类型
const downloadElement = document.createElement('a')
const href = window.URL.createObjectURL(blob) // 创建下载的链接
downloadElement.href = href
downloadElement.download = '订单记录.xlsx' // 下载后文件名
document.body.appendChild(downloadElement)
downloadElement.click() // 点击下载
document.body.removeChild(downloadElement) // 下载完成移除元素
window.URL.revokeObjectURL(href) // 释放掉blob对象
原理暂时还不知道 求大神讲解。。。