【发布时间】:2020-02-16 16:41:01
【问题描述】:
我从后端 api 获取学生数据列表到一个有效的 excel 文件中,该文件在点击端点 /api/v1.0/students/students-xlsx/ 时被下载,但是当我打电话时在客户端此端点显示不可读的格式并作为损坏的 excel 文件下载。
我遵循了一些 stackoverflow 建议,例如 atob、encodeURI 响应数据并添加特定类型 (UTF-8),但它失败了。我仍然收到带有奇怪字符的损坏文件。
excelFileDownload() {
this.$http.get(this.exportXLUrl)
.then((response) => {
response.blob().then(() => {
const blob = new Blob([response.body], { type: response.headers.get('content-type') });
const filename = response.headers.map['content-disposition'][0].split('filename=')[1];
const link = document.getElementById('download-excel-file');
link.href = window.URL.createObjectURL(blob);
link.download = filename.split('"').join('');
link.style.display = 'block';
link.click();
});
});
},
我希望输出与我仅使用可浏览 API 调用端点时相同 - 这为我提供了具有可读字符的适当 xls 格式文件。但在客户端,我根本没有得到。都坏了。任何帮助将不胜感激,以改进我的代码。
【问题讨论】:
-
如果你把yourdomain.com/api/v1.0/students/students-xlsx/放在浏览器上,浏览器会下载文件吗?
-
是的@ItsaMeTuni
标签: javascript excel vue.js ecmascript-6