IE11使用blob保存下载的.xlsx文件损坏角度(在本地工作)

时间:2018-06-04 11:46:21

标签: node.js angular blob internet-explorer-11 xlsx

当我从服务器下载.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相同。

1 个答案:

答案 0 :(得分:0)

您是否检查过您的http服务器MIME类型? .xlsx应该是 应用/ vnd.openxmlformats-officedocument.spreadsheetml.sheet