1. 利用Axios向服务器请求文档流
function download(url, methods, params = {}, params1 = {}) {
return new Promise((resolve, reject) => {
url = apiUrl + url;
Axios({
url: url,
method: methods,
data: params,
params: params1,
responseType: 'arraybuffer'
}).then((response) => {
resolve(response)
}).catch(function (error) {
reject(error)
})
})
}
2. 处理向服务器请求下来的文档流
function excelDownload(obj, name = Date.now()) {
const url = window.URL.createObjectURL(
new Blob([obj], { type: 'application/vnd.ms-excel' })
);
const aDOM = document.createElement('a');
aDOM.style.display = 'none';
aDOM.href = url;
aDOM.setAttribute('download', decodeURI(name));
document.body.appendChild(aDOM);
aDOM.click()
document.body.removeChild(aDOM);
window.URL.revokeObjectURL(url);
}