使用 element.download 下载文件后,ASCII 标记“DC3”丢失

问题描述

我有一个使用 SheetJS 构建 Excel 文件的脚本,如果文件只是保存到目录中,它可以正常工作,但是当我使用 element.download 从浏览器下载此文件时,我收到来自 Excel 的损坏文件错误。在使用 npp 检查这两个文件时,我注意到下载的文件中缺少所有 DC3 标签

Wokring 文件内容

enter image description here

损坏的文件内容

enter image description here

为什么会发生这种情况,我该如何解决

SheetJS 代码

var wb = XLSX.utils.book_new()
var ws = XLSX.utils.json_to_sheet(data);
XLSX.utils.book_append_sheet(wb,ws,'test');
XLSX.writeFile(wb,'test.xlsx');
var excelData = fs.readFileSync('./test.xlsx','utf8')
res.send(excelData);

浏览器端代码

var xhr = new XMLHttpRequest();
xhr.open("POST",'http://10.0.0.222:9999',true);
xhr.setRequestHeader('Content-Type','application/json');
xhr.send(JSON.stringify(goodJSON)) 
var excel = xhr.response;
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:attachment/text,' + encodeURI(excel);
hiddenElement.target = '_blank';
hiddenElement.download = 'myFile.xlsx';
hiddenElement.click();

10.0.0.222:9999 是我的带有 SheetJS 代码的 NodeJS 应用

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)