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 相关文章推荐
Wordpress ThickBox 添加“查看原图”效果代码
Dec 11 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
Dec 10 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
Feb 25 Javascript
jQuery中 attr() 方法使用小结
May 03 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
Sep 17 Javascript
jQuery实现Tab选项卡切换效果简单演示
Nov 23 Javascript
AngularJS上拉加载问题解决方法
May 23 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
Oct 26 Javascript
JavaScript实现实时更新系统时间的实例代码
Apr 04 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
Jun 08 Javascript
微信小程序实现图片选择并预览功能
Jul 25 Javascript
vue实现员工信息录入功能
Jun 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
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
PHP 高手之路(三)
2006/10/09 PHP
PHP 文件上传功能实现代码
2009/06/24 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
基于initPHP的框架介绍
2013/04/18 PHP
yii框架配置默认controller和action示例
2014/04/30 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
Vue.js实现简单ToDoList 前期准备(一)
2016/12/01 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
VUE的history模式下除了index外其他路由404报错解决办法
2019/08/21 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
Javascript中的奇葩知识,你知道吗?
2021/01/25 Javascript
Python之修改图片像素值的方法
2019/07/03 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
为什么说python适合写爬虫
2020/06/11 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
2021/01/24 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
2014年大学生自我评价
2014/01/19 职场文书
家长写给老师的建议书
2014/03/13 职场文书
机电一体化毕业生自荐信
2014/06/19 职场文书
股东授权委托书
2014/10/15 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
城南旧事电影观后感
2015/06/16 职场文书