我正在使用Typescript处理Angular4。
我能够使用XLSX-populate库创建一个blob。
假设下面的blob是一个有效的xlsx对象
var url = window.URL.createObjectURL(blob);
var a = document.createElement("a");
document.body.appendChild(a);
a.href = url;
a.download = "download file.xlsx";
a.click();
我在执行期间保存了blob变量。 然后手动运行此块仅约20次。 (blob没有重新制作或覆盖)
结果不一致。
下载的XLSX文件有时会损坏,有时则不会。
我研究了javascript的异步性质,但是因为blob已经创建并且一些尝试能够生成正常运行的xlsx文件。我完全不知道接下来要做什么。
更新: 还是没有解决。但我在SAME href 4x上背靠背触发了click事件,中间没有其他线路,我有2个工作版本和2个失败版本。
答案 0 :(得分:0)
这可能不完全是一个答案。但我发现只需等待几秒钟,xlsx文件就可以了。如果我重试,即使是最初打开时首次失败的文件也可以打开。
这让我相信它与chrome检测文件准备就绪的方式有关。
然而,href下载最终不是问题。