微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使用 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 举报,一经查实,本站将立刻删除。