NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
做导出功能时,能在浏览器直接访问的下载路径是无法在react中直接出现的,所以要经过一番处理。在react处理Excel导出如下,详情见注释: ``` axios.get(url, { responseType: 'arraybuffer' }).then((res) => { if (res.status === 200) { const blob = new Blob([res.data], { type: "application/vnd.ms-excel" }); // 创建Blob 对象(存储二进制文件,注意type一定要) const fileName = "文件名.xls"; // 文件名 const elink = document.createElement('a'); // 创建一个HTML元素 elink.download = fileName; // 给元素添加H5中的download属性 elink.style.display = 'none'; elink.href = URL.createObjectURL(blob); // 利用Blob对象创建URL document.body.appendChild(elink); // 加入标签 elink.click(); // 点击事件 URL.revokeObjectURL(elink.href); // 释放URL对象 document.body.removeChild(elink) // 移除标签 console.log("导出成功"); } }) ``` 注意请求头里面的responseType: 'arraybuffer' 是必须要的。get请求和post请求都可以,但是测试时发现post请求偶尔会出现乱码现象,具体原因未找到,猜测应该是与后台有关,因为换个接口又没有这种情况。