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 相关文章推荐
javascript引用对象的方法
Jan 11 Javascript
基于jQuery的获取标签名的代码
Jul 16 Javascript
js正文内容高亮效果的实现方法
Jun 30 Javascript
JS使用post提交的两种方式
Dec 03 Javascript
javascript瀑布流式图片懒加载实例解析与优化
Feb 23 Javascript
分享12个实用的jQuery代码片段
Mar 09 Javascript
AngularJs  E2E Testing 详解
Sep 02 Javascript
JavaScript原型继承_动力节点Java学院整理
Jun 30 Javascript
详解vue中computed 和 watch的异同
Jun 30 Javascript
vue封装第三方插件并发布到npm的方法
Sep 25 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
Nov 12 Javascript
javascript实现评分功能
Jun 24 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
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
jquery offset函数应用实例
2012/11/14 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
Vue中如何实现轮播图的示例代码
2017/07/27 Javascript
微信小程序实现下拉刷新和轮播图效果
2017/11/21 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
JS实现滑动插件
2020/01/15 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
python模拟登陆Tom邮箱示例分享
2014/01/13 Python
理解Python中函数的参数
2015/04/27 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
python实现决策树分类
2018/08/30 Python
python开启debug模式的方法
2019/06/27 Python
python实现静态web服务器
2019/09/03 Python
python scipy卷积运算的实现方法
2019/09/16 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
Python高并发和多线程有什么关系
2020/11/14 Python
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
创伤外科专业推荐信范文
2013/11/19 职场文书
应付会计岗位职责
2013/12/12 职场文书
会计毕业自我鉴定
2014/02/05 职场文书
《故乡》教学反思
2014/04/10 职场文书
档案接收函格式
2015/01/30 职场文书
2015年试用期自我评价范文
2015/03/10 职场文书
2016参观监狱警示教育活动心得体会
2016/01/15 职场文书
用python自动生成日历
2021/04/24 Python
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
Spring Bean是如何初始化的详解
2022/03/22 Java/Android
css弧边选项卡的项目实践
2023/05/07 HTML / CSS