vue导出经过base64加密的数据
封装到一个函数里面
export function transFile(base64, name) {
var bstr = atob(base64);
var n = bstr.length;
var u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
var myBlob = new Blob([u8arr], { type: "excel" });
if (!!window.ActiveXObject || "ActiveXObject" in window) {
// ie,直接利用由base64得到的blob生成文件
navigator.msSaveBlob(myBlob, name); //filename文件名包括扩展名,下载
} else {
// 非ie,由base64得到blob后,再模拟点击a标签来下载
var myUrl = URL.createObjectURL(myBlob);
var a = document.createElement("a");
a.setAttribute("href", myUrl);
a.setAttribute("download", name);
a.setAttribute("target", "_blank");
var clickEvent = document.createEvent("MouseEvents");
clickEvent.initEvent("click", true, true);
a.dispatchEvent(clickEvent);
}
}
然后直接调用就行了
transFile(res.data.data, "a.xlsx");