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 相关文章推荐
将jQuery应用于login页面的问题及解决
Oct 17 Javascript
用方法封装javascript的new操作符(一)
Dec 25 Javascript
当json键为数字时的取值方法解析
Nov 15 Javascript
javascript(js)的小数点乘法除法问题详解
Mar 07 Javascript
jQuery异步获取json数据方法汇总
Dec 22 Javascript
jQuery+CSS3实现树叶飘落特效
Feb 01 Javascript
理解Javascript图片预加载
Feb 23 Javascript
详解jQuery停止动画——stop()方法的使用
Dec 14 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
Nov 28 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
Jun 25 Javascript
vue.js轮播图组件使用方法详解
Jul 03 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
Aug 13 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 CURL用法的深入分析
2013/06/09 PHP
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
js算法中的排序、数组去重详细概述
2013/10/14 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
详解angularjs的数组传参方式的简单实现
2017/07/28 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
基于VUE实现的九宫格抽奖功能
2018/09/30 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
2019/04/04 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
python求素数示例分享
2014/02/16 Python
跟老齐学Python之正规地说一句话
2014/09/28 Python
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
Python简单实现enum功能的方法
2016/04/25 Python
python直接访问私有属性的简单方法
2016/07/25 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
儿童python练习实例
2018/05/27 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
python实现简单登陆系统
2018/10/18 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
2014年客服工作总结范文
2014/11/13 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
统计工作个人总结
2015/03/03 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技