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静态的动态
Sep 18 Javascript
用js的for循环获取radio选中的值
Oct 21 Javascript
使用Browserify配合jQuery进行编程的超级指南
Jul 28 Javascript
XMLHttpRequest Level 2 使用指南
Aug 26 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
Sep 19 Javascript
jQuery操作json常用方法示例
Jan 04 Javascript
快速将Vue项目升级到webpack3的方法步骤
Sep 14 Javascript
详解使用 Node.js 开发简单的脚手架工具
Jun 08 Javascript
React父子组件间的传值的方法
Nov 13 Javascript
jquery实现垂直手风琴菜单
Mar 04 jQuery
微信小程序实现滑动操作代码
Apr 23 Javascript
Vue中computed及watch区别实例解析
Aug 01 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模拟登录并获取数据实例
2014/07/01 PHP
CodeIgniter多语言实现方法详解
2016/01/20 PHP
多个iframe自动调整大小的问题
2006/09/18 Javascript
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
javascript中不等于的代码是什么怎么写
2013/12/29 Javascript
JavaScript中读取和保存文件实例
2014/05/08 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
jQuery实现跨域
2015/02/03 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
使用Node.js实现简易MVC框架的方法
2017/08/07 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
2020/06/11 Javascript
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
Android应用开发中Action bar编写的入门教程
2016/02/26 Python
Python实现ssh批量登录并执行命令
2016/10/25 Python
Python简单的制作图片验证码实例
2017/05/31 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
工程地质勘察专业大学生求职信
2013/10/13 职场文书
后勤采购员岗位职责
2013/12/19 职场文书
运动会入场词50字
2014/02/20 职场文书
保安队长职务说明书
2014/02/23 职场文书
《最后的姿势》教学反思
2014/02/27 职场文书
西式婚礼主持词
2014/03/13 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
药品销售员2015年终工作总结
2015/10/22 职场文书
2016七夕情人节感言
2015/12/09 职场文书
《灰雀》教学反思
2016/02/19 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书