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')
}
相关推荐
code_li13 小时前
聊聊支付宝架构
java·开发语言·架构
yuguo.im13 小时前
我开源了一个 GrapesJS 插件
前端·javascript·开源·grapesjs
安且惜13 小时前
带弹窗的页面--以表格形式展示
前端·javascript·vue.js
少控科技13 小时前
QT高阶日记01
开发语言·qt
无限进步_13 小时前
【C++】大数相加算法详解:从字符串加法到内存布局的思考
开发语言·c++·windows·git·算法·github·visual studio
“抚琴”的人13 小时前
C#上位机工厂模式
开发语言·c#
巨大八爪鱼13 小时前
C语言纯软件计算任意多项式CRC7、CRC8、CRC16和CRC32的代码
c语言·开发语言·stm32·crc
C+-C资深大佬14 小时前
C++ 数据类型转换是如何实现的?
开发语言·c++·算法
木千14 小时前
Qt全屏显示时自定义任务栏
开发语言·qt
摘星编程14 小时前
用React Native开发OpenHarmony应用:NFC读取标签数据
javascript·react native·react.js