gpt4 book ai didi

javascript - 如何在客户端正确下载xlsx文件?

转载 作者:行者123 更新时间:2023-11-28 03:10:32 24 4
gpt4 key购买 nike

我需要下载 xlsx 格式的文件。我从后端(nodeJS)获取文件的内容并进行一些配置,如下所示:

  let blob = new Blob([excelData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
URL.createObjectURL(blob);
var link = document.createElement("a");
link.download = name;
link.href = URL.createObjectURL(blob);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
delete link;

这只是一个例子。我在客户端使用 React。 excelData 看起来像 enter image description here

但是当我尝试在 Microsoft Excel 中打开下载的文件时,收到消息“文件已损坏,无法打开”。我尝试通过 postman 获取文件的内容并打开它 - 一切正常。

我认为问题出在客户端上形成链接。谁能告诉我如何解决这个问题?

谢谢大家

最佳答案

var blob = new Blob([s2ab(atob(excelData))], {      type: ''     });
var link = document.createElement("a");
link.download = name;
link.href = URL.createObjectURL(blob);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
delete link;
function s2ab(s) {
var buf = new ArrayBuffer(s.length);
var view = new Uint8Array(buf);
for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}

如果您的excelData正确,请尝试此方法,那么您将获得正确的数据格式

关于javascript - 如何在客户端正确下载xlsx文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60166161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com