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();
            }
        }
    });

 

posted @ 2025-03-25 23:12  前端搬运工bug  阅读(177)  评论(0)    收藏  举报