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小功能(onmouseover实现选择月份)实例代码
Nov 28 Javascript
JS实现很酷的EMAIL地址添加功能实例
Feb 28 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
Jan 05 Javascript
jQuery EasyUI菜单与按钮详解
Jul 13 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
Jul 24 Javascript
JavaScript中object和Object的区别(详解)
Feb 27 Javascript
详解基于vue的移动web app页面缓存解决方案
Aug 03 Javascript
jQuery事件对象的属性和方法详解
Sep 09 jQuery
js导出Excel表格超出26位英文字符的解决方法ES6
Nov 15 Javascript
layui获取多选框中的值方法
Aug 15 Javascript
vue 获取视频时长的实例代码
Aug 20 Javascript
Vue $emit()不能触发父组件方法的原因及解决
Jul 28 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基础教程
2015/08/26 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
文本链接逐个出现的js脚本
2007/12/12 Javascript
javascript 正则替换 replace(regExp, function)用法
2010/05/22 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
JavaScript中Cookies的相关使用教程
2015/06/04 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
Vue源码解析之数组变异的实现
2018/12/04 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
vue axios封装httpjs,接口公用配置拦截操作
2020/08/11 Javascript
Python生成器定义与简单用法实例分析
2018/04/30 Python
Python实现爬虫爬取NBA数据功能示例
2018/05/28 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
使用python脚本自动创建pip.ini配置文件代码实例
2019/09/20 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
深入分析python 排序
2020/08/24 Python
CSS3动画和HTML5新特性详解
2020/08/31 HTML / CSS
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
公证书格式
2015/01/23 职场文书
委托书格式要求
2015/01/28 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书
CSS 圆形进度栏
2021/04/06 HTML / CSS
Python基础之条件语句详解
2021/06/16 Python