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')
}
相关推荐
未来魔导1 分钟前
Gin版本的路由总结
开发语言·llm·gin·路由
周杰伦_Jay10 分钟前
【Eino框架】Go语言驱动的LLM应用开发新范式
开发语言·后端·golang
hxmmm12 分钟前
自定义封装 vue多页项目新增项目脚手架
前端·javascript·node.js
ETA812 分钟前
JS执行机制揭秘:你以为的“顺序执行”,其实是V8引擎在背后搞事情!
前端·javascript
上78将13 分钟前
Java中既有编译执行又有解释执行,这个怎么理解?
java·开发语言
鹏北海-RemHusband14 分钟前
微前端实现方式:HTML Entry 与 JS Entry 的区别
前端·javascript·html
一个无名的炼丹师14 分钟前
【硬核实战】Python处理多源异构文档:从读取到智能信息提取的统一框架深度剖析
开发语言·python
Mr_Xuhhh15 分钟前
JAVA期末重点
java·开发语言·python
a程序小傲23 分钟前
小红书Java面试被问:java创建对象有哪些方式?
java·开发语言·面试
行走的陀螺仪36 分钟前
JavaScript 装饰器完全指南(原理/分类/场景/实战/兼容)
开发语言·javascript·ecmascript·装饰器