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调用AJAX时Get和post公用的乱码解决方法实例说明
Jun 04 Javascript
Jquery easyui 下loaing效果示例代码
Aug 12 Javascript
JS控制日期显示的小例子
Nov 23 Javascript
node.js中的fs.realpath方法使用说明
Dec 16 Javascript
html的DOM中Event对象onblur事件用法实例
Jan 21 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
Sep 06 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
Sep 23 Javascript
JavaScript实现动态增删表格的方法
Mar 09 Javascript
jQuery阻止移动端遮罩层后页面滚动
Mar 15 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
Jun 23 Javascript
JS实现方形抽奖效果
Aug 27 Javascript
JS根据json数组多个字段排序及json数组常用操作
Jun 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
古巴咖啡 Cubita琥爵咖啡 独特的加勒比海风味咖啡
2021/03/06 新手入门
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
PHP实用小技巧之调用录像的方法
2019/12/05 PHP
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
2010/01/05 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
2020/07/23 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
[51:26]VP vs VG 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
python 循环遍历字典元素的简单方法
2016/09/11 Python
Python爬虫中urllib库的进阶学习
2018/01/05 Python
windows下python和pip安装教程
2018/05/25 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
python修改FTP服务器上的文件名
2019/09/11 Python
python实现小世界网络生成
2019/11/21 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
Python 实现进度条的六种方式
2021/01/06 Python
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
品学兼优的大学生自我评价
2013/09/20 职场文书
校园十大歌手策划书
2014/02/01 职场文书
项目合作协议书
2014/09/23 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
2016春节慰问信范文
2015/03/25 职场文书
2015年度残疾人工作总结
2015/05/14 职场文书
圣诞晚会主持词
2015/07/01 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python