js实现blob类型转化为excel文件

需求

后端通过接口将excel文件通过blob类型数据进行返回,前端接收数据并将其转化为excel文件进行下载

实现

接口方法

responseType:值为blob,标记返回数据类型为blob

Content-Type:请求头设置,值为application/vnd.ms-excel,标记类型为excel文件

javascript 复制代码
// request为项目内部封装
export const getDownLoadUrl = () => {
    return request({
        url: '/aiModel/superModel/superModelImportTemplate',
        method: 'get',
        responseType: 'blob',
        headers: {
            'Content-Type': 'application/vnd.ms-excel'
        }
    })
}

转化方法

创建blob类型对应的url对象挂载到链接上,并模拟点击链接方式进行excel文件下载

javascript 复制代码
export function downloadBlob(blob, name) {
    const url = URL.createObjectURL(blob)
    const a = document.createElement('a')
    a.href = url
    a.download = name
    document.body.appendChild(a)
    a.click()
    document.body.removeChild(a)
    URL.revokeObjectURL(url) // 释放对象
}

调用逻辑

使用上述实现的两个方法,从接口获取blob后将其转化为excel文件下载

javascript 复制代码
const download = async() => {
    const res = await getDownLoadUrl()
    downloadBlob(res, 'excel模板.xlsx')
}
相关推荐
lozhyf17 分钟前
Go语言-学习一
开发语言·学习·golang
dujunqiu27 分钟前
bash: ./xxx: No such file or directory
开发语言·bash
爱偷懒的程序源30 分钟前
解决go.mod文件中replace不生效的问题
开发语言·golang
日月星宿~30 分钟前
【JVM】调优
java·开发语言·jvm
2401_8437852339 分钟前
C语言 指针_野指针 指针运算
c语言·开发语言
Jacob程序员1 小时前
leaflet绘制室内平面图
android·开发语言·javascript
eguid_11 小时前
JavaScript图像处理,常用图像边缘检测算法简单介绍说明
javascript·图像处理·算法·计算机视觉
AitTech1 小时前
C#编程:List.ForEach与foreach循环的深度对比
开发语言·c#·list
阿俊仔(摸鱼版)2 小时前
Python 常用运维模块之OS模块篇
运维·开发语言·python·云服务器
军训猫猫头2 小时前
56.命令绑定 C#例子 WPF例子
开发语言·c#·wpf