blob导出的excel文件打不开,responseType: “blob“ 但 response回应类型不是blob类型,response.data是乱码。
解决方法在最下面,可以直接去看【解决方法-->正解】
【问题描述】
使用blob导出.xlsx文件打开后出错,如下:
WPS表格 在试图打开文件时遇到错误。请尝试以下方法。
检查文档或驱动器得到访问权限。
确保有足够的内存和磁盘空间。
确保此文件是可以识别的格式。
前端查看response响应值如下:
可以看出,response.data是一串乱码,并不是自己要求的blob类型。
这串乱码被放到了.xlsx文件中当然就打不开拉。可以用notepad++打开导出的.xlsx文件,就是这串乱码。
response.data的值如下:
抄一下别人的图清楚点:(图转自:https://blog.csdn.net/qq_38804584/article/details/109238794)
【问题解决】
1.失败尝试一
首先我参考了https://blog.csdn.net/csu_passer/article/details/91952460
将new Blob([data], {type: 'application/vnd.ms-excel'}))
改为了:new Blob(['\uFEFF' +data], {type: application/vnd.ms-excel;charset=utf-8'}))
结果呢,确实是打开文件了,但是打开后是一串乱码。修改这句话的作用其实就是把乱码当作文本放在了excel中,打开excel后显示的文本就是response.data中的乱码。
打开后就是这样:(图转自:https://blog.csdn.net/qq_38804584/article/details/109238794)
2.失败尝试一
然后参考了https://blog.csdn.net/qq_38804584/article/details/109238794
博主说:
然后我找啊找,找了很久,网上方法都尝试了。最后看到网上有盆友说可能是使用了mock模拟的原因,我就把mock的使用关掉了(没有设置开关的盆友就可以在引入的位置注释)。
然后我并没找到这个变量。
日后我会再找找自己的应该修改什么变量。
3.正解
参考了这位博主文章:https://blog.csdn.net/belove_lucy/article/details/95476669
博主说:
之前都是正常的,昨天测了一个下午都失败了,前端拿来的数据变成json格式,并不是规定好的blob类型。。。
最后才发现是因为项目被我引进了mock,关掉就好了
个人感觉,是mock拦截所有的请求(不管他是不是被mock的接口),将返回数据类型统一转了json格式。。。据说mock还会私自更改其他请求配置?
我查询问题的链接:https://github.com/PanJiaChen/vue-element-admin/issues/562
点开链接看看,发现有人直接将import './mock'注释掉了,如图:
接下来将前端项目中main.js的 import './mock'注释掉,成功解决问题。
注释掉后response.data返回的值应差不多是下面这个样子的,注意这里的data是data:Blob(5432)了。
blob导出的excel文件打不开,responseType: “blob“ 但 response回应类型不是blob类型,response.data是乱码。相关推荐
- php导出excel表格 打不开,phpspreadsheet 导出的EXCEL 文件打不开
PHP 版本7.1.3我输入 网址http://localhost/fast/vendor/phpoffice/phpspreadsheet/samples/Basic/01_Simple_downl ...
- (vue)vue导出excel文件打不开,或者文件内容为object object
(vue)vue导出excel文件打不开,或者文件内容为object object[已解决] bug: 主要原因:没有注意到后端返回的数据格式,需要的是res而不是res.data 正确写法: < ...
- 应用phpexcel导出excel文件后打不开的问题解决方法
应用phpexcel导出excel文件后打不开的问题解决方法 参考文章: (1)应用phpexcel导出excel文件后打不开的问题解决方法 (2)https://www.cnblogs.com/im ...
- swagger easyExcel导出Excel文件打不开,文件损坏
alibaba/easyexcel文件导出 swagger easyExcel导出Excel文件打不开,文件损坏 文件下载打不开,将文件输出到本地发现可以打开,而且swagger下载的文件大小比本地文 ...
- swagger接口导出excel文件打不开
swagger接口导出excel文件打不开: 接口添加produces="application/octet-stream" @ApiOperation(value = " ...
- 第六期:如何通过知晓云将数据表导出为 Excel 文件
作者:知晓云 - 小程序开发快人一步 来源:知晓课堂 在日常的工作中,常常需要根据运营需求对数据进行各种格式的处理和导出.导出后,不少人偏爱将数据放入 excel在进行处理. 一般来说,处理数据导出时 ...
- easyexcel使用问题:使用时导出的excel文件损坏,打开不了,后台没异常错误
错误问题:使用时导出的excel文件损坏,打开不了,后台没异常错误 解决方式:因为前端使用的是blob,最后定位错误在前端发送请求时漏了一个参数, responseType: 'blob' expor ...
- Vue 使用XLSX导出excel,并且设置标题背景颜色、字体、居中。并且在前端导出成excel文件
1.先看效果图 2.引入依赖 npm install xlsx-style --save npm install --save xlsx 3.运行项目会发生一个报错 This relative mod ...
- vue导出excel加一个进度条_vue项目中如何把数据导出成excel文件
Loading... 关于vue中如何把数据导出成excel文件 ### 1. 安装依赖 ``` yarn add file-saver yarn add xlsx yarn add script-l ...
最新文章
- jittor和pytorch生成网络对比之stargan
- boost::mp11::mp_min_element_q相关用法的测试程序
- 手游运营重度化,抓好论坛专区“预热战场”
- Ubuntu 14.04下编译WebRTC
- python中grid函数_Python / NumPy中meshgrid的目的是什么?
- 【LeetCode】【HOT】394. 字符串解码(栈)
- sprintboot入门
- 回到顶部 jquery
- PHP学习笔记五(命名空间)
- [转贴]九大职业之一了百了[启示录]
- oracle怎么启动oem,Oracle 启动OEM
- python控制EnergyPlus方法(linux)
- 下载速度MB/s与Mb/s的区别
- Mysql用户与权限操作
- ps_图片大小精准裁剪
- 基因的entrez ID 跟symbol等其它ID的转换程序
- 个人youtube视频观看历史分析
- PQ分区魔术师调整硬盘分区大小
- 安装卸载Xftp时,遇到的1605和1628问题
- 批量处理ios破解后的资源文件为android所用