工作中经常遇到下载excel表格数据的需求,后端一般都返回文件流的格式,前端需要解析成excel的形式下载到本地,废话不多说上代码
// 下载文件
download(params) {
if (window.Blob) {
const xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
if (xhr.status == 200) {
let res = xhr.response;
let file = new Blob([res]);
let fileName = "质控列表.xlsx";
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(file, fileName);
}
// for Non-IE (chrome, firefox etc.)
else {
var a = document.createElement("a");
a.download = fileName;
a.href = window.URL.createObjectURL(file);
$("body").append(a);
a.click();
$(a).remove();
}
}
}
};
xhr.open("POST", "后端接口url", true);
xhr.responseType = "arraybuffer"; //arraybuffer也可以
xhr.setRequestHeader("token", window.sessionStorage.getItem("token"));
xhr.setRequestHeader(
"customer",
window.sessionStorage.getItem("customerId")
);
xhr.send(JSON.stringify(params));
}
}