vue 导出excel 乱码

经过小女子的不懈努力,终于解决了。

1.第一步:axios 接口请求的一定要传 ,下图仅供参考

responseType: 'blob'

 2.调用接口

  看后台返回的是二进制流还是blob对象

  (1)是二进制流需要用   new Blob([res.data], {type: 'application/octet-stream'});

  转化成 Blob对象

  (2)那就方便了直接使用

3.拿到文件就开始下载了

 let url = window.URL.createObjectURL(res.data);
            console.log(blob)
            var a = document.createElement("a");
            document.body.appendChild(a);
            a.href = url;
            a.download ="aaa.xls";
            a.click();
            window.URL.revokeObjectURL(url);

  

  按正常情况已经完成了,开心开心,但是事情总是 出其不意,OMG。下载下来的文件竟然打不开,内心。。。

经过很长时间的查找与百度最后终于发现了关键地方。

敲黑板 vue项目中使用了mock模拟数据 导致responseType: 'blob'无效,把mock模式关闭完美 perfect!

 

以上内容是工作中遇到的问题,如有不妥记得留言哦!

posted @ 2020-01-17 17:37  IT婷婷  阅读(7151)  评论(7编辑  收藏  举报