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')
}
相关推荐
二川bro5 分钟前
第51节:Three.js源码解析 - 核心架构设计
开发语言·javascript·ecmascript
-大头.9 分钟前
响应式编程实战:WebFlux与RSocket深度解析
java·开发语言
异步的告白17 分钟前
C语言-数据结构-2-单链表程序-增删改查
c语言·开发语言·数据结构
CryptoRzz1 小时前
印度股票数据 PHP 对接文档 覆盖 BSE(孟买证券交易所)和 NSE(印度国家证券交易所)的实时数据
android·服务器·开发语言·区块链·php
lkbhua莱克瓦241 小时前
集合进阶6——TreeMap底层原理
java·开发语言·笔记·学习方法·hashmap
普通网友1 小时前
内存对齐与缓存友好设计
开发语言·c++·算法
lsx2024061 小时前
DOM 节点信息
开发语言
普通网友1 小时前
C++编译期数据结构
开发语言·c++·算法
whatever who cares1 小时前
Java/Android中BigDecimal的相关操作
android·java·开发语言
djk88882 小时前
多标签页导航后台模板 html+css+js 纯手写 无第三方UI框架 复制粘贴即用
javascript·css·html