前端点击按钮导出Excel表,以下方法,前提是让后端返回的文件流可以直接请求下载。

意思就是:你通过在浏览器请求接口,传参就可以直接下载文件。

方法一:

window.open('请求地址')

适用于get请求,需要传参的话,直接在地址后面拼接参数即可

此方法的缺点:逻辑是重新打开一个新的页面发请求,因此请求时间较长时会出现空白页。

方法二:

const link = document.createElement("a");
link.href='请求地址';
link.download='文件名.xlsx';
link.click();//点击事件

适用于get请求,需要传参的话,直接在地址后面拼接参数即可

该方法逻辑是用a标签发送请求。在当前页面发送请求,不会出现空白页。

方法三:

     const data = {name:'张三'};//请求参数写这里面var oReq = new XMLHttpRequest();oReq.open("POST", '请求地址', true);oReq.responseType = "blob";oReq.setRequestHeader("Content-Type", "application/json");oReq.send(JSON.stringify(data))oReq.onload = function (oEvent) {var content = oReq.response;var elink = document.createElement('a');elink.download = '文件名.xlsx'elink.style.display = 'none';var blob = new Blob([content]);elink.href = URL.createObjectURL(blob);document.body.appendChild(elink);elink.click();document.body.removeChild(elink);

此方法是用原生ajax发送请求。

需要注意,请求头的配置。如果项目是用的存储在cookie里面的值去验证用户身份的话,建议不要用这个方法,因为我试了行不通。但是用的localStorage或者sessionStorage存储token验证身份就可以。

本人试了多次,不能用封装好的ajax发请求,猜想大概原因是封装好了的ajax响应拦截器那里会做一些操作,所以不能正常请求下载文件。以上方法就是为了不通过响应拦截器实现获取后端返回的文件流。不知道响应拦截器那里应该怎么配置让文件通过,顺利下载。如果您有想法,请在评论区指导一下,谢谢。

React,导出Excel表格的方法相关推荐

  1. 后台管理系统导出Excel表格的方法

    //导出Excel公共方法function excelExport(colums,queryParams,objectName,baseUrl,sysUrl,body,title){if(colums ...

  2. layui 导出 Excel表格的方法

    一.利用layui自带的excel导出功能 // 原始容器 <table id="demo" lay-filter="test"></tabl ...

  3. 使用python将数据导出excel表格

      python可用于数据分析,有时候获得了数据需要导出以作其他作用.本文就介绍python导出excel表格的方法.   导出excel表格,python提供了两个库:xlwt,xlrd.本文只讨论 ...

  4. Thinkphp导入、导出Excel表格

    Thinkphp中导出Excel表格具体方法如下: 1.在ThinkPHP/Library/Vendor目录下新建文件夹PHPExcel,将excel文件解压后放入文件夹中. (下载地址:链接:htt ...

  5. vue使用xlsx、xlsx-style和fileSaver导出excel表格

    本文引用 xlsx-style坑记录 Vue使用xlsx和xlsx-style纯前端导出带样式的Excel vue导出Excel表格,报错utils of undefined 是版本原因 前期准备工作 ...

  6. 前端 table 导出excel表格方法

    需求:获取后台数据,动态生成table后,导出excel表格,要求格式与table格式一致 直接上代码: <a id="export">导出</a> < ...

  7. java excil表格开发_JAVA导出Excel电子表格的方法

    JAVA导出Excel电子表格的方法 package com.qingruxu.excel; import java.io.File; import java.io.IOException; impo ...

  8. php datatable导出excel,C#_C#实现将DataTable内容输出到Excel表格的方法,本文实例讲述了C#实现将DataTabl - phpStudy...

    C#实现将DataTable内容输出到Excel表格的方法 本文实例讲述了C#实现将DataTable内容输出到Excel表格的方法.分享给大家供大家参考.具体如下: 1.关于本文 本文描述了一个函数 ...

  9. java中使用jxl导出Excel表格详细通用步骤

    该方法一般接收两个参数,response和要导出的表格内容的list. 一般我们将数据库的数据查询出来在页面进行展示,根据用户需求,可能需要对页面数据进行导出. 此时只要将展示之前查询所得的数据放入s ...

最新文章

  1. apache配置,保你配置成功
  2. SpringBoot动态生成多个Excel文件以压缩包.zip格式下载
  3. 解决 No module named ‘PyQt5.QtWebEngineWidgets‘
  4. Eclipse4.8.0无法打开 Eclipse MarketPlace
  5. Rxjs 里 subscribeToArray 工具函数的详细分析
  6. Android NDK学习(七):NDK 编译支持 C++特有的库
  7. Spark数据倾斜解决方案(转)
  8. 监听程序不支持服务 linux,ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序...
  9. smail if-eqz理解
  10. php个人发卡搭建教程,个人发卡平台ZFAKA程序搭建详细教程
  11. python自学行_python自学行吗
  12. c 语言 组合数,C++中求组合数的各种方法总结详解
  13. Java面试题之ServletJSP篇
  14. 【开源】蓝奏云直链解析
  15. 视频压缩编码技术概述
  16. Mac版Ps、AE、PR不能突然使用?
  17. BFS + 状态压缩总结
  18. 2017年浙江工业大学大学生程序设计迎新赛热身赛-J-Forever97与寄信
  19. 你的芯片,能抵挡住几次攻击?
  20. 移动端真机调试工具--weinre

热门文章

  1. 1. bootstrap概述
  2. 父类和子类间引用要注意的问题
  3. php讲图片转换成二进制,如何把php中的图片转换成二进制
  4. 计算机访问要输入用户及密码是多少,局域网访问需要用户名和密码怎么办
  5. Android Linux换核 + goldfish环境搭建
  6. vue-amap center和zoom
  7. 外汇自动交易系统,利用大数据判断行情准确率在95%
  8. 医学图像分割常用指标及代码(pytorch)
  9. 使用Python实现的遗传算法 附完整代码
  10. 五彩泡泡box-shadow