后端返还二进制excl表格数据时候,如何实现在前端下载表格功能及出现表格打开失败的异常处理。

背景:

后端返还一个二进制流的excl表格数据,前端需要对其解析,然后可提供给客户进行下载。
思路:把二进制流数据转换给blob对象,然后利用a标签进行前端下载。

代码:

后端返还

类似如下的数据
在这里插入图片描述

前端代码:

    let res: any = await api.getData(data);
    let blob = new Blob([res], { type: 'application/vnd.ms-excel;charset=utf-8' })
    let href = window.URL.createObjectURL(blob); //创建下载的链接
    const link = document.createElement('a');
    link.href = href;
    link.download = '计算列表.xlsx';
    link.click();

如果正常情况下就可以解决下载问题。

异常处理:

在这里插入图片描述

以上问题需要更改一下接口请求数据的返回方式,

{
	url:'/',
	data:'//',
	responseType: 'arraybuffer',
}

这样就可以解决下载的问题了。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-07 18:54:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-07 18:54:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-07 18:54:03       87 阅读
  4. Python语言-面向对象

    2024-04-07 18:54:03       96 阅读

热门阅读

  1. Django--方法

    2024-04-07 18:54:03       40 阅读
  2. Vue 【vite使用alias】

    2024-04-07 18:54:03       40 阅读
  3. 蓝桥杯刷题--python38

    2024-04-07 18:54:03       35 阅读
  4. Docker

    Docker

    2024-04-07 18:54:03      27 阅读
  5. C 练习实例98-汉诺塔(完结撒花)

    2024-04-07 18:54:03       34 阅读
  6. MySQL中innodb_status_output_locks含义和用法

    2024-04-07 18:54:03       31 阅读
  7. 机器学习模型调优简介

    2024-04-07 18:54:03       26 阅读
  8. 一些有用的Enterprise UX Design 地址

    2024-04-07 18:54:03       40 阅读
  9. spring rest

    2024-04-07 18:54:03       36 阅读
  10. Redis之缓存穿透、击穿、雪崩

    2024-04-07 18:54:03       32 阅读