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 的方法重载效果
Aug 07 Javascript
JavaScript中关于indexOf的使用方法与问题小结
Aug 05 Javascript
js实现密码强度检测【附示例】
Mar 30 Javascript
Node.js插件安装图文教程
May 06 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
May 09 Javascript
Angular ng-repeat 对象和数组遍历实例
Sep 14 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
Apr 22 Javascript
Javascript实现信息滚动效果
May 18 Javascript
JavaScript设计模式之责任链模式实例分析
Jan 16 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
Mar 04 Javascript
vuex的数据渲染与修改浅析
Nov 26 Vue.js
用几道面试题来看JavaScript执行机制
Apr 30 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_fetch_assoc返回来的数组 不用foreach----echo
2011/05/04 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
2013/06/01 PHP
基于PHP的简单采集数据入库程序
2014/07/30 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
可以将word转成html的js代码
2010/04/11 Javascript
20款效果非常棒的 jQuery 插件小结分享
2011/11/18 Javascript
jquery.cookie.js使用指南
2015/01/05 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
2015/06/05 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
vue-loader教程介绍
2017/06/14 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
vue中created和mounted的区别浅析
2019/08/13 Javascript
[56:46]Liquid vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python读写json文件的简单实现
2017/04/11 Python
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
python实现读取excel写入mysql的小工具详解
2017/11/20 Python
Python3实现转换Image图片格式
2018/06/21 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
2019/05/27 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
Python中os模块功能与用法详解
2020/02/26 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
优秀党员转正的自我评价
2013/10/06 职场文书
高中自我鉴定
2013/12/20 职场文书
护理专业毕业生自荐信范文
2014/01/05 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers