今天用的是一个 npm install js-file-download 包
下载 npm install js-file-download --save
that.$axios.post(‘接口的链接’, {responseType: 'blob',//类型,data:{需要传递字段}})
.then(function(res){
fileDownload(res.data,'safa.xlsx')
})
fileDownload()俩个参数 一个是需要返回的文件流,一个是文件名称。
/////////////////////上面这个削微有一点小毛病 后来我用的下面的方法 后端传回来的是base64的文件流
//将base64文件转换成blob文件流
function dataURLtoBlob(base64Str) {
var bstr = atob(base64Str), n = bstr.length, u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], { type: "application/vnd.ms-excel" });
}
var blob = dataURLtoBlob(str);//传入base64文件
var downloadUrl = window.URL.createObjectURL(blob);//转换
//添加一个a标签,利用a标签打开表格
var anchor = document.createElement("a");
anchor.href = downloadUrl;
anchor.download = decodeURI('表格.xlsx');
anchor.click();
网友评论