vue通过接口直接下载java生成好的Excel表格案例


Posted in Javascript onOctober 26, 2020

通过浏览器直接访问导出接口就会自动下载创建好的 Excel 表格。但是我们在vue里使用axios请求接口,一般是处理json数据,如果要处理文件流数据,需要做下特殊处理即可直接下载文件。

假如 下载Excel接口为:/apis/downExcel,则请求如下

import axios from 'axios'
 
export const exportFile = params => {
 var param = new URLSearchParams()
 param.append('beginTime', params.beginTime)
 param.append('endTime', params.endTime)
 return axios({
  method: 'post',
  data: param,
  url: '/apis/downExcel',
  responseType: 'blob'
 })
}

下载按钮触发下载方法如下:

downExcel() {
 var params = {
  beginTime: this.times[0],
  endTime: this.times[1]
 };
 exportFile(params).then(
  data => {
   /** 获取生成设置好的文件名 */
   var filename = data.headers["content-disposition"];
   filename = filename.split("=")[1];
   filename = decodeURIComponent(filename, "utf-8");
   /** 接收文件流 */
   const blob = new Blob([data.data]);
   let url = URL.createObjectURL(blob);
   /** 模拟浏览器操作Document,并模拟下载动作 */
   let link = document.createElement("a");
   link.style.display = "none";
   link.href = url;
   link.setAttribute("download", filename);
   document.body.appendChild(link);
   link.click();
  },
  error => {
   console.log(error);
   this.$message.error("下载异常,请稍后再试");
  });
}

这样就可以在vue项目中完整下载Excel接口,当然vue也有生成Excel的插件,接收后台的json数据然后在前端生成并下载。

补充知识:Vue实现通过后端接口导出Excel表格

需求:后端提供下载接口,返回二进制文件流,前端导出为xlsx格式的Excel表格

实现:

1、按钮调用下载接口

2、new Blob导出

vue通过接口直接下载java生成好的Excel表格案例

vue通过接口直接下载java生成好的Excel表格案例

PS:

1、第一步请求接口时,注意要设置请求responseType为blob类型,否则下载后,显示格式错误,无法打开

2、new Blob请求是,注意修改type类型为application/vnd.ms-excel

vue通过接口直接下载java生成好的Excel表格案例

vue通过接口直接下载java生成好的Excel表格案例

以上这篇vue通过接口直接下载java生成好的Excel表格案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
删除重复数据的算法
Nov 23 Javascript
jquery 使用点滴函数代码
May 20 Javascript
基于jquery的web页面日期格式化插件
Nov 15 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
Oct 20 Javascript
JS+CSS实现精美的二级导航效果代码
Sep 17 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
Nov 25 Javascript
总结JavaScript三种数据存储方式之间的区别
May 03 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
Jan 20 Javascript
详谈表单格式化插件jquery.serializeJSON
Jun 23 jQuery
JS实现数组简单去重及数组根据对象中的元素去重操作示例
Jan 05 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
Jun 24 Javascript
原生JavaScript写出Tabs标签页的实例代码
Jul 20 Javascript
基于elementUI竖向表格、和并列的案例
Oct 26 #Javascript
原生js实现贪吃蛇游戏
Oct 26 #Javascript
JavaScript实现五子棋小游戏
Oct 26 #Javascript
详解vue3.0 的 Composition API 的一种使用方法
Oct 26 #Javascript
vue3.0 加载json的方法(非ajax)
Oct 26 #Javascript
Vue+Element自定义纵向表格表头教程
Oct 26 #Javascript
vue3.0 的 Composition API 的使用示例
Oct 26 #Javascript
You might like
php提取身份证号码中的生日日期以及验证是否为成年人的函数
2015/09/29 PHP
php cookie 详解使用实例
2016/11/03 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
写出更好的JavaScript程序之undefined篇(中)
2009/11/23 Javascript
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
js console.log打印对像与数组用法详解
2016/01/21 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
2017/12/11 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
python中类的一些方法分析
2014/09/25 Python
用python爬取租房网站信息的代码
2018/12/14 Python
理想高通滤波实现Python opencv示例
2019/01/30 Python
基于python实现高速视频传输程序
2019/05/05 Python
python五子棋游戏的设计与实现
2019/06/18 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
python tkinter之 复选、文本、下拉的实现
2020/03/04 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
俄罗斯建筑和装饰材料在线商店:Stroilandia
2020/07/25 全球购物
检举信的格式及范文
2014/04/04 职场文书
商务日语专业自荐信
2014/04/17 职场文书
小学生期末评语大全
2014/04/21 职场文书
拆迁委托协议书
2014/09/15 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
喋血孤城观后感
2015/06/08 职场文书
大学生村官驻村工作心得体会
2016/01/23 职场文书