【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用
原创
©著作权归作者所有:来自51CTO博客作者挚爱的强哥的原创作品,请联系作者获取转载授权,否则将追究法律责任
// 下载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 ?