uinapp 后端文件流导出excel
exportExcel() {
uni.request({
url: config.baseUrl + '/market/clueVisit/export',
method: 'POST',
responseType: 'arraybuffer', // 关键设置
header: {
'Authorization': 'Bearer ' + getToken(),
'token': getToken(),
},
success: (res) => {
const arrayBuffer = res.data; // 获取二进制流
console.log('arrayBuffer', arrayBuffer)
const blob = new Blob([arrayBuffer], {
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
});
//注意这个type跟后端返回的响应头一致
const reader = new FileReader();
reader.readAsDataURL(blob); // 转换为base64,可以直接放入a标签的href
reader.onload = (e) => {
// 转换完成,创建一个a标签用于下载
const a = document.createElement("a");
a.download = `clueVisit_${new Date().getTime()}.xlsx`;
`clueVisit_${new Date().getTime()}.xlsx`;
if (typeof e.target.result === "string") {
a.href = e.target.result;
}
a.click();
}
}
});