功能实现:前后端配合,前端借助调用后端接口。
- 如果后端返回的是base64格式的url,需要转成二进制,再用blob处理;
- 如果后端返回的是文件流或二进制流,直接用blob处理;
前端将列表导出成excel表格(后端返回的是base64格式的url)
- 调用后端接口,将列表数据传给后端
- 后端返回一个base64格式的url地址,
- 解码,将base64格式的url转成二进制
- 创建一个a标签,把解码后的地址赋值给a标签的href属性,再给它添加下载功能
// /utils.js
export default{
const dataURLtoBlob = function(dataUrl){
var blobStr = atob(dataurl)// 解码
// 创建长度为n的数组,初始化里面的相都为0,即[0,0,0,...]
n = bstr.length,
u8arr = new Uint8Array(n)
while (n--){
urarr[n]=bstr.charCodeAt(n)
}
return