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的倒计时实现代码
May 30 Javascript
基于JQuery的列表拖动排序实现代码
Oct 01 Javascript
用jquery写的一个万年历(自写)
Jan 20 Javascript
JavaScript中跨域调用Flash的方法
Aug 11 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
Oct 27 Javascript
JS判断当前页面是否在微信浏览器打开的方法
Dec 08 Javascript
动态加载js、css的实例代码
May 26 Javascript
快速掌握jQuery插件WebUploader文件上传
Nov 07 Javascript
多种方式实现js图片预览
Dec 12 Javascript
Vue响应式原理深入解析及注意事项
Dec 11 Javascript
在vue项目中引入高德地图及其UI组件的方法
Sep 04 Javascript
Nuxt.js 静态资源和打包的操作
Nov 06 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文本转图片自动换行的方法
2013/03/13 PHP
php动态函数调用方法
2015/05/21 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
简介JavaScript中valueOf()方法的使用
2015/06/05 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
vue 音乐App QQ音乐搜索列表最新接口跨域设置方法
2018/09/25 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
Python随手笔记第一篇(2)之初识列表和元组
2016/01/23 Python
深入理解python函数递归和生成器
2016/06/06 Python
举例讲解Python常用模块
2019/03/08 Python
python使用Plotly绘图工具绘制气泡图
2019/04/01 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
浅谈CSS3鼠标移入图片动态提示效果(transform)
2017/11/06 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
早会主持词
2014/03/17 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
2015年高校图书馆工作总结
2015/04/30 职场文书
婚庆主持词大全
2015/06/30 职场文书
志愿者工作心得体会
2016/01/15 职场文书
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis
Flask response响应的具体使用
2021/07/15 Python
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python