前言

在做 excel 导出时,经常需要导出选中的行,然选中的行需要将 id 传给后台,如果使用 get 方式导出,在浏览器地址栏能导出的行数是有限。此时,就需要用到 POST 方式导出了。

环境

  • axios
  • element-ui
  • vue 2.5.2

POST导出

request.js

import axios from 'axios'
import { Message } from 'element-ui'
/*** 请求函数*/
const request = (url, data = {}, method = 'post', options = {}) => {return axios.request({url,data,method,...options})
}/*** 从服务器下载excel*/
const postDownload = (url, data) => {const defaultOptions = {responseType: 'arraybuffer'}request(url, data, 'post', defaultOptions).then(res => {const filename = decodeURI(res.headers['content-disposition'].split('filename=')[1])if ('download' in document.createElement('a')) {downloadFile(res.data, filename)} else {Message.error('浏览器不支持')}})
}/*** blob下载(兼容IE)* @param {String} content 文件内容* @param {String} filename 文件名*/
const downloadFile = (content, filename) => {const blob = new Blob([content])// IEif (window.navigator && window.navigator.msSaveOrOpenBlob) {window.navigator.msSaveOrOpenBlob(blob, filename)} else {imatateDownloadByA(window.URL.createObjectURL(blob), filename)}
}/*** 通过a标签模拟下载* @param {String} href* @param {String} filename*/
const imatateDownloadByA = (href, filename) => {const a = document.createElement('a')a.download = filenamea.style.display = 'none'a.href = hrefdocument.body.appendChild(a)a.click()a.remove()// 释放掉blob对象window.URL.revokeObjectURL(href)
}

测试下载

postDownload('http://locahost:3000/excel/export')

参考

https://www.jianshu.com/p/a81c68c15fbd

post导出excel相关推荐

  1. java struts2 excel上传_Java Struts2 实现数据库数据导出Excel文件

    HTML: 导出 Struts.xml true application/vnd.ms-excel;charset=GBK excelStream attachment;filename=${file ...

  2. Java springMVC POI 导出 EXCEL

    2019独角兽企业重金招聘Python工程师标准>>> 思路 : 将需要导出的数据存放在一个List中 创建一个EXCEL表 注意 XSSFWorkbook 只能操作2007以上的版 ...

  3. 如何优雅的导出 Excel

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:juejin.im/post/5c6b6b126fb9a04 ...

  4. Java报表工具FineReport导出EXCEL的四种API

    在实际的应用中会经常需要将数据导出成excel,导出的方式除原样导出还有分页导出.分页分sheet导出和大数据量导出.对于excel 2003版,由于限制了每个sheet的最大行数和列数,大数据量导出 ...

  5. html导出excel时换行符,ASP.NET 导出到Excel时保留换行的代码

    完整代码: protected void Button1_Click(object sender, EventArgs e) { System.Web.HttpContext curContext = ...

  6. java 导出excel 注解_Java基于注解和反射导入导出Excel

    list = ei.getDataList(User.class); for (User user : list){ try{ //to do: 保存/处理数据 //userService.save( ...

  7. 导出excel 数字前少0_【产品介绍】数字压力校验仪

    数字压力校验仪 24V供电 + (4-20)Ma测量 调节7位设置数字显示 | 可拆卸充电锂电池 现场.实验室压力校准系统CWY300数字压力校验仪,是我公司推出的新一代高精度.高稳定.兼具工业4.0 ...

  8. NPOI导入导出EXCEL通用类,可直接使用在WinForm项目中

    由于XSSFWorkbook类型的Write方法限制,Write完成后就自动关闭流数据,所以无法很好的支持的Web模式,网上目前也未找到好的解决方案. 注意:若直接使用在WinForm项目中,必需先下 ...

  9. (转).NET导出Excel的四种方法及评测

    .NET导出Excel的四种方法及评测 导出Excel是.NET的常见需求,开源社区.市场上,都提供了不少各式各样的Excel操作相关包.本文,我将使用NPOI.EPPlus.OpenXML.Aspo ...

  10. java导出excel压缩包_java动态导出excel压缩成zip下载的方法

    本文实例为大家分享了java动态导出excel压缩成zip下载的具体代码,供大家参考,具体内容如下 package pack.java.io.demo; import java.io.Buffered ...

最新文章

  1. TC专访Waymo首席技术官:谷歌自动驾驶的过去和未来
  2. 终于有人把中医“数字化”了 | 极客视频
  3. The executable was signed with invalid entitlements
  4. java如何遍历combobox_如何通过COMBOBOX设置Java中的框架标题?
  5. addeventlistener事件参数_从Chrome源码看浏览器的事件机制
  6. TCP/IP:ARP与RARP详细解析
  7. Bambook 简介
  8. android让文本输入框默认不获取焦点,android EditText 默认情况下不获取焦点(不弹出输入框)...
  9. PHP substr(),mb_substr(),mb_strcut()比较
  10. 文字处理(WORD/WP)中,布局与绘制必然分开
  11. 红绿3d眼镜与红蓝3d眼镜区别_佩极定制眼镜青少年3D打印定制系列全新发布
  12. Atitit TPL(事务处理语言 目录 1.1. 事务隔离级别 1 1.2. Savepoint技术 1 2. Tpl 1 2.1.  打开事务 START TRANSACTION; 1 2.2.
  13. JQuery 使用笔记 2013.09.05
  14. c可视化编程学习感悟_编程课程心得体会范文【五篇】
  15. Eview操作步骤——数据导入及数据建模
  16. 【老生谈算法】基于matlab的指纹处理和识别算法详解及程序源码——指纹识别算法
  17. c语言如何判断字符类型,数据类型怎么判断 C语言中如何判断数据类型
  18. 使用LibreOffice将office文档转pdf(java实现)
  19. 51单片机多线程神器:Tiny-51操作系统
  20. BitBucket介绍以及基础使用

热门文章

  1. 【C语言练习——调整数组内奇数偶数的顺序】
  2. boostbuck电路
  3. 高中OJ3057【NOIP2012模拟10.26】电影票
  4. android 使用 surfaceView 获取 camera 预览界面图像数据
  5. 多发射极晶体管和多集电极晶体管
  6. 分享两种好看的CSS表格样式
  7. html自动创建div,Javascript实现动态创建DIV步骤
  8. XGBoost 重要参数(调参使用)
  9. 震惊!某大学生被生活搞得苦不堪言原因竟然是……
  10. 珠海行(下)--不会游泳的潜水员(2)