// 下载blob文件流(暂不支持手机H5唤起下载文件!!!)
downloadFile(res: any, fileName: any = '未命名', format: any = '.xlsx') {
const blob = new Blob([res]);
fileName += format;
// for IE
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, fileName);
} else {
// for Non-IE (chrome, firefox etc.)
const elink = document.createElement('a');
elink.download = fileName, elink.style.display = 'none', elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink), elink.click();
URL.revokeObjectURL(elink.href), document.body.removeChild(elink);
}
}

如果用以上方法下载的文件打开是乱码,请对ajax请求设置红色部分

$.ajax({
    url: 'url',
 xhrFields: { responseType: "arraybuffer" },
}).done((result) => {
 //    result 为arrayBuffer类型
})

如果用的不是ajax,而是axios,那么请设置: 

axiosData.responseType = 'blob'; //这句话解决导出文件乱码问题

知识拓展,何为 responseType