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 相关文章推荐
拖拉表格的JS函数
Nov 20 Javascript
Javascript代码在页面加载时的执行顺序介绍
May 03 Javascript
jQuery中hasClass()方法用法实例
Jan 06 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
Feb 16 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
Jun 18 Javascript
js 获取元素的具体样式信息getcss(实例讲解)
Jul 05 Javascript
js 概率计算(简单版)
Sep 12 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
Oct 23 Javascript
vue element中axios下载文件(后端Python)
May 10 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
May 14 Javascript
JavaScript中的连续赋值问题实例分析
Jul 12 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
Feb 11 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 和 MySQL 开发的 8 个技巧
2006/10/09 PHP
php eval函数用法总结
2012/10/31 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
2020/01/26 PHP
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
JavaScript实现的encode64加密算法实例分析
2015/04/15 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
AngularJS实现的JSONP跨域访问数据传输功能详解
2017/07/20 Javascript
js下拉菜单生成器dropMenu使用方法详解
2017/08/01 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
Python实现list反转实例汇总
2014/11/11 Python
详解Python函数作用域的LEGB顺序
2016/05/14 Python
利用Python实现颜色色值转换的小工具
2016/10/27 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
2019/06/18 Python
Django中create和save方法的不同
2019/08/13 Python
Python实现线性插值和三次样条插值的示例代码
2019/11/13 Python
matlab中imadjust函数的作用及应用举例
2020/02/27 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
Python3-异步进程回调函数(callback())介绍
2020/05/02 Python
学会python自动收发邮件 代替你问候女友
2020/05/20 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
HTML5 placeholder(空白提示)属性介绍
2013/08/07 HTML / CSS
LivingSocial英国:英国本地优惠
2019/02/22 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
《鞋匠的儿子》教学反思
2014/03/02 职场文书
环境卫生工作汇报材料
2014/10/28 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python