当前位置: 首页 > news >正文

微服务之excel导出

问题场景

在网关添加了权限校验,要求请求在header中携带token。前端获取到token之后存储在localstorage,请求时在请求拦截中取到token放在header中。excel导出一般的做法是用a链接指向excel导出接口,或者使用window.location.href = url 的方式,问题是这两种方式无法在header中携带token 。

解决方法

  • 使用axios发送post请求,将获取到的body数据放入Blog对象中,js代码使用Blog创建一个 url
  • 同时创建一个 a链接,将url赋值给a.href,js触发a.click下载文件。

代码实现

     exportExcel() {
        this.$axios(
          {
            method: 'post',
            url: '/api/addressbook/addressbookPerson/exportPersonlist',
            responseType: 'arraybuffer',
            data: {
              personName: this.queryPersonName
            }
          }
        ).then(res => {
          this.saveData(res.data, "通讯录人员.xlsx")
        }).catch((error) => {

        })
      },
      saveData(data, filename) {
        let blob = new Blob([data], {type: "application/vnd.ms-excel;charset=utf-8;"});
        let objectUrl = URL.createObjectURL(blob);
        let a = document.createElement('a');
        document.body.appendChild(a);
        a.style = "display:none";
        a.href = objectUrl;
        a.download = filename;
        a.click();
      }

转载于:https://www.cnblogs.com/huangll99/p/9679231.html

相关文章:

  • [LeetCode] 93. Restore IP Addresses 复原IP地址
  • node.js 事件处理模式
  • BZOJ4939 [YNOI2016]掉进兔子洞
  • HDU 2010 水仙花数
  • 题解 P1494 【[国家集训队]小Z的袜子】
  • JQuery Mobile - 解决切换页面时,闪屏,白屏等问题
  • codeforce round#511
  • HDU 5763 Another Meaning (KMP/哈希+DP)
  • 阻止冒泡,阻止默认事件
  • eclipse安装详解以及遇到的问题
  • org.hibernate.hql.internal.ast.QuerySyntaxException: Ledger is not mapped [......]报错解决
  • cc2540-led/timer
  • POJ 1741 点分治
  • 深入解析Java反射(1) - 基础
  • linux zip tar
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • ES学习笔记(12)--Symbol
  • Flannel解读
  • Joomla 2.x, 3.x useful code cheatsheet
  • Octave 入门
  • python_bomb----数据类型总结
  • Vue全家桶实现一个Web App
  • 给github项目添加CI badge
  • 技术:超级实用的电脑小技巧
  • 排序(1):冒泡排序
  • 什么是Javascript函数节流?
  • 用element的upload组件实现多图片上传和压缩
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • 容器镜像
  • ​2020 年大前端技术趋势解读
  • #前后端分离# 头条发布系统
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • $.each()与$(selector).each()
  • (003)SlickEdit Unity的补全
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (ZT)薛涌:谈贫说富
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (转)Linux下编译安装log4cxx
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .gitattributes 文件
  • .NET Core 中的路径问题
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .ui文件相关
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [ 转载 ] SharePoint 资料
  • [<死锁专题>]
  • [2018-01-08] Python强化周的第一天
  • [20190401]关于semtimedop函数调用.txt