我将尝试用JavaScript下载xlsx电子表格。我已经测试了base64数据。我按以下方式解码它:
var data = atob(validBase64Data);
之后,我执行以下操作:save(name, data, type) {
const blob = new Blob([data], {type: type});
let objectURL = window.URL.createObjectURL(blob);
let anchor = document.createElement('a');
anchor.href = objectURL;
anchor.download = name;
anchor.click();
URL.revokeObjectURL(objectURL);
}
当名称为filename.xlsx时,data为解码数据,type为mime类型字符串。
Excel文件被下载但无法用Excel打开。数据在某些方面上已经损坏。
此外,我使用Unix终端命令对相同的数据进行了测试,以将xlsx直接写入该文件,并且可以生成工作文件。测试如下:
- 将base64数据保存到test_excel.txt中
- 运行命令
base64 -D -i test_excel.txt -o test_excel.xlsx
- test_excel.xlsx可以被Excel识别。
我的代码有何问题?
base64
。如果那个不起作用,那么问题就是你的atob()
不符合RFC 3548标准,这将有一个不同的解决方案,而且更简单。 - Patrick Roberts-i
选项。仍然正常工作。 - Lex Podgorny