第一步:写获取blob文件流aixos
export function queryData(param) {
return axios.request({
url: '输入文件流地址',
method: '请求类型',
data: 参数,
headers: {
'Content-Type': 'application/json;charset=UTF-8',
},
responseType: 'blob', //定义文件流类型blob类型
});
}
第二步:调用获取文件流axios
queryData(param).then((res) => {
download(res, '文件名'); // download函数单独js文件导入
});
第三步:转换xlsx文件的js
import dayjs from 'dayjs'; //使用了dayjs,也可以不写
export function download(data, name, type = 'xlsx') {
let dqdate = dayjs().format('_YYYY_MM_DD_HH_mm_ss');
try {
var blobURL = window.URL.createObjectURL(data);
var tempLink = document.createElement('a');
tempLink.style.display = 'none';
tempLink.href = blobURL;
tempLink.setAttribute('download', name + dqdate + '.' + type);
if (typeof tempLink.download === 'undefined') {
tempLink.setAttribute('target', '_blank');
}
document.body.appendChild(tempLink);
tempLink.click();
document.body.removeChild(tempLink);
window.URL.revokeObjectURL(blobURL);
} catch (error) {
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(data, name + dqdate + '.' + type);
} else {
throw error;
}
}
}