当我从服务器下载.xlsx文件时,下载的文件没有正确的结构(样式表,工作表等),但它只是一个扩展名为.xlsx的二进制文件。
注意:它在Chrome,Firefox,Edge和本地甚至在IE11中运行良好,我已将Internet Explorer的安全设置设置为与本地和远程网站相同。
这是服务器创建响应的方式:
const buffer = json2xls(values, { fields: fields });
res.end(buffer, 'binary');
这是客户端保存提取数据的方式:
downloadFile(selectedReport) {
const blob = new Blob([selectedReport.blob()], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
FileSaver.saveAs(blob, `result.xlsx`);
}
我尝试过替换:
FileSaver.saveAs(blob,result.xlsx
);
with:
window.navigator.msSaveBlob(blob,result.xlsx
);
但结果仍然相同。
注意:损坏的result.xlsx
文件的内容与服务器发送的buffer
相同。
答案 0 :(得分:0)
您是否检查过您的http服务器MIME类型? .xlsx应该是 应用/ vnd.openxmlformats-officedocument.spreadsheetml.sheet