JS使用BLOB方式下载Excel导致文件损坏的问题解决

这两天写一个后台生成Excel返回前端下载的功能,遇到了一个问题,记录一下。

前端点击下载按钮,文档损坏,但是使用Postman调用下载,文档却是正常的。

exportExcel(exportExcelParams.value).then((res: any) => {
        let blob = new Blob([res], {
          type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8',
        });
        let link = document.createElement('a');
        link.style.display = 'none';
        link.href = URL.createObjectURL(blob);
        link.download = exportExcelParams.value.expName; //下载的文件名
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
      });

在请求方法中加入 responseType: ‘blob’ 后,问题解决,如下所示:

export const exportExcel = async (SysExportSetReq: any) => {
  return request.request({
    url: '/sam/master/baSysExportSet/exportExcel',
    method: 'POST',
    data: SysExportSetReq,
    responseType: 'blob'
  });
};

Original: https://www.cnblogs.com/JyoKou/p/16545939.html
Author: JyoKou
Title: JS使用BLOB方式下载Excel导致文件损坏的问题解决

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/590165/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JAVA正则表达式判断元音

    /* 判断字符串”qaq”中间的字符是否是元音* aeiou* AEIOU**/ (1)正则表达式 (2) (3) Original: https://ww…

    Java 2023年6月5日
    078
  • 数据结构与算法之插入排序与归并排序

    插入排序举个最好的例子就是扑克牌,当我们手里拿了N张无序的牌,如果要对牌进行排序,最好的思路是从第二张开始,我们设置这个为i,让它和前边的牌做比较如果需要换位置就换,换了以后继续往…

    Java 2023年6月8日
    078
  • Spider

    流程: 迭代进行:种子url->Element遍历获取超链接lin->作为新种子id ⚠️注意频率和遍历深度 1.设定url及请求参数 headers = {&quot…

    Java 2023年6月9日
    063
  • SpringBoot项目解决全局响应返回中文乱码问题

    一、问题 新建的基于SpringBoot的MVC项目,在请响应体中,如果有中文,会显示为乱码。 二、解决方案 1、在application.properties中设置: Origi…

    Java 2023年5月30日
    058
  • synchronized锁详解

    synchronized的意义 解决了Java共享内存模型带来的线程安全问题: 如:两个线程对初始值为 0 的静态变量一个做自增,一个做自减,各做 5000 次,结果是 0 吗?(…

    Java 2023年6月16日
    069
  • Centos7下Oracle启动命令

    1、查询挂载历史记录 在root账户下使用一下命令 查看历史使用挂载的那个磁盘 查看挂载&a…

    Java 2023年6月8日
    073
  • SpringCloud学习笔记-Eureka基础

    Spring Cloud Eureka是Spring Cloud Netflix微服务套件中的一部分,它基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的微服…

    Java 2023年5月30日
    078
  • Go gin 接入 prometheus

    Prometheus 的 go sdk 是由官方提供的,地址:https://github.com/prometheus/client_golang ,里面包含了生成 promet…

    Java 2023年6月9日
    075
  • 外贸开发,用java调用速卖通api第一步,token的获取。

    第一步 定义速卖通api的常量 public String client_id;public String client_key;public String site; 第二步 获…

    Java 2023年5月29日
    063
  • 琐碎的想法(四)键盘布局、快捷键的由来

    写这篇文章的意义 很多不太了解电脑的同学会觉得键盘的快捷键这么多,这么复杂,为什么不设计的简单点,有的键可能一辈子都用不上,这些发明有什么意义? Q & A 问:现在的键盘…

    Java 2023年6月8日
    048
  • day39-网络编程01

    Java网络编程01 1.网络相关的概念 1.1网络通信和网络 *网络通信 概念:两台设备之间通过网络实现数据传输 网络通信:将数据通过网络从一台设备传输到另一台设备 java.n…

    Java 2023年6月15日
    077
  • Markdown语法

    本地编辑器的选择 1. 推荐文本编辑器:Typora2. Typora编辑器的下载和安装 编辑器下载地址 安装步骤如下: 下载之后,双击打开,一直点击下一步则可安装好。 Markd…

    Java 2023年6月9日
    070
  • react与redux学习资料的整理

    重点内容 React学习1.新手入门可以访问react的官方网站,如果英语不是特别好的同学可以访问中文版的,具体链接http://reactjs.cn/react/index.ht…

    Java 2023年6月9日
    062
  • HTTP Study

    定义:在两点之间传输文本,视频,图片等超文本数据的协议和规范 HTTP风险 通信使用明文,https通过信息加密(混合加密)解决 无法验证报文的完整性,https通过校验机制(摘要…

    Java 2023年6月8日
    070
  • 谈谈Raft

    本文主要参考: 极客时间-etcd 实战课 GitChat-分布式锁的最佳实践之:基于 Etcd 的分布式锁 谈到分布式协调组件,我们第一个想到的应该是大名鼎鼎的Zookeeper…

    Java 2023年6月5日
    065
  • GBase数据库对象相关操作

    create table 表名(列名 数据&am…

    Java 2023年6月9日
    074
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球