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')
}
相关推荐
青岑CTF2 分钟前
攻防世界-Web_php_include-胎教版wp
开发语言·安全·web安全·网络安全·php
摘星编程6 分钟前
OpenHarmony环境下React Native:Tooltip自动定位
javascript·react native·react.js
雾岛听蓝10 分钟前
C++11 列表初始化与右值引用核心解析
开发语言·c++·经验分享
穿过锁扣的风12 分钟前
如何操作HTML网页
前端·javascript·html
小北方城市网20 分钟前
Spring Boot 多数据源与事务管理实战:主从分离、动态切换与事务一致性
java·开发语言·jvm·数据库·mysql·oracle·mybatis
痴儿哈哈20 分钟前
C++与硬件交互编程
开发语言·c++·算法
roman_日积跬步-终至千里40 分钟前
【Java 并发-面试】从线程基础到企业级开发的知识点概况
java·开发语言
云中飞鸿40 分钟前
VS2015安装后,安装QT59,之后安装qt-vsaddin-msvc2015-2.4.3.vsix 文件失败问题!
开发语言·qt
m0_7482331743 分钟前
C与C++:底层编程的六大核心共性
java·开发语言
沐知全栈开发1 小时前
HTTP Content-Type
开发语言