vue使用axios实现excel文件下载的功能


Posted in Javascript onJuly 16, 2020

前端VUE页面上的导出或者下载功能,一般是调用后端的一个接口,由接口生成excel,word这些文件的流信息,返回给vue,然后由vue去构建下载的动作,这边整理了一下,封装了一下,方便以后复用。

封装一个download文件

使用年月日时分秒毫秒做为文件的名称,下载为excel文件

/**
 * 下载文件
 */
export const downloadFile = (url,ext, params) => {
  let accessToken = getStore('accessToken');
  return axios({
    method: 'get',
    url: `${base}${url}`,
    params: params,
    headers: {
      'accessToken': accessToken
    },
    responseType: 'blob', //二进制流
  }).then(res => {
    // 处理返回的文件流
    const content = res;
    const blob = new Blob([content], { type: 'application/vnd.ms-excel;charset=utf-8' });
    var date =
      new Date().getFullYear() +
      "" +
      (new Date().getMonth() + 1) +
      "" +
      new Date().getDate() +
      "" +
      new Date().getHours() +
      "" +
      new Date().getMinutes() +
      "" +
      new Date().getSeconds() +
      "" +
      new Date().getMilliseconds();
    const fileName = date + "." + ext;
    if ("download" in document.createElement("a")) {
      // 非IE下载
      const elink = document.createElement("a");
      elink.download = fileName;
      elink.style.display = "none";
      elink.href = URL.createObjectURL(blob);
      document.body.appendChild(elink);
      elink.click();
      URL.revokeObjectURL(elink.href); // 释放URL 对象
      document.body.removeChild(elink);
    } else {
      // IE10+下载
      navigator.msSaveBlob(blob, fileName);
    }
  });
};

为具体功能封装一个组件,方便在前台调用

// 评价导出
export const getRecordExport= (params) => {
  return downloadFile('/record/export',"xlsx", params)
}

vue页面上调用它,实现导出

<script>
import {
 getReportExport
} from "@/api/index";
import util from "@/libs/util.js";

export default {
 name: "task-manage",
 data() {},
 methods: {
  exportExcel() {
   getReportExport(this.searchForm).then(res=>{});
  }
 }
}

截图

vue使用axios实现excel文件下载的功能

到此这篇关于vue使用axios实现excel文件下载的功能的文章就介绍到这了,更多相关vue实现excel文件下载内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js Date概念详细介绍
Nov 22 Javascript
浅析JavaScript中的typeof运算符
Nov 30 Javascript
基于jquery实现的可编辑下拉框实现代码
Aug 02 Javascript
使用js画图之饼图
Jan 12 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
Feb 26 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
Apr 06 Javascript
Ajax中解析Json的两种方法对比分析
Jun 25 Javascript
AngularJS实现Model缓存的方式
Feb 03 Javascript
Google 地图叠加层实例讲解
Aug 06 Javascript
vue 里面使用axios 和封装的示例代码
Sep 01 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
Jul 19 Javascript
JS代码触发事件代码实例
Jan 02 Javascript
vue实现自定义多选按钮
Jul 16 #Javascript
vue实现div单选多选功能
Jul 16 #Javascript
vue+AI智能机器人回复功能实现
Jul 16 #Javascript
vue.js实现h5机器人聊天(测试版)
Jul 16 #Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
Jul 16 #Javascript
通过实例解析vuejs如何实现调试代码
Jul 16 #Javascript
详解js中的几种常用设计模式
Jul 16 #Javascript
You might like
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
2017/01/18 Javascript
简单了解JavaScript中常见的反模式
2019/06/21 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
2019/08/14 Javascript
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
js实现表格数据搜索
2020/08/09 Javascript
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
python实现五子棋小游戏
2020/03/25 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
上海奥佳笔试题面试题
2016/11/16 面试题
怎样写好创业计划书的内容
2014/02/06 职场文书
国际商务英语专业求职信
2014/07/08 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
2016中秋节问候语
2015/11/11 职场文书
Redis RDB技术底层原理详解
2021/09/04 Redis