excel 下载方法封装

1.首先需要拿到后端返回的URL下载地址

2.写个下载方法

javascript 复制代码
// url 接口返回的下载地址。例如:https://cancer-research.oss-cn-beijing.aliyuncs.com/yuance-platform-permission/校内共享数据导入模板.xlsx
// name 文件名称 例如: 校内共享数据导入模板
// 引入下载方法
import { staticFileDownload } from '@/utils/index'
// 使用下载方法
handleDownloadFile (url, name) {
   staticFileDownload(url, name)
},

// 封装的公共方法
export const staticFileDownload = (href, filename = '文件下载', fileType = 'xlsx') => {
  if (!href) {
    vm.$message.error('未发现文件,请检查')
    return
  }
  var a = document.createElement('a') // 创建一个a标签
  a.href = href // 给a标签的href属性值加上地址,如果是项目本地文件,写绝对路径 例如:/static/模板.xlsx
  a.target = '_self' // 在当前页面打开
  a.download = `${filename}.${fileType}` // 设置下载文件的文件名,这里加上.xlsx指定文件类型,pdf文件就指定.pdf即可
  a.style.display = 'none' // 隐藏a标签
  document.body.appendChild(a) // 将a标签追加到文档对象中
  a.click() // 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
  a.remove() // 一次性的,用完就删除a标签
}

// 如果不要求加文字名称,可以用 window.open(url)

相关推荐
卸任2 小时前
Vibe coding工具使用心得
前端·ai编程
brien93 小时前
为什么模型标称 1M,Google Antigravity 聊到 256K 却突然失忆?我们给它做了个原生行内监控圆环
前端
修炼的dance3 小时前
录屏关键帧间隔多少合适?六档实测,2秒到10秒小了75.6%
前端
Lank_M3 小时前
关键帧从1秒拉到10秒,录屏小87.3%,摄像头小10.8%
前端
补码缩写3 小时前
用 ffprobe 拆录屏,八成字节在 29 个关键帧上
前端
百思不得小李3 小时前
一个复杂的动态表单是如何实现的
前端·设计模式
陈随易3 小时前
Cmder 停更 17 个月,2.0 支持 Windows Terminal
前端·后端·程序员
清晨Coding3 小时前
删了 Cookie 还能自动登录?Google系网站登录态自动恢复的原理分析
javascript
风骏时光牛马4 小时前
前沿视界
前端
kyriewen4 小时前
我扫了 814 个依赖,97 个还敢要 Node 10
前端·javascript·程序员