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 相关文章推荐
JavaScript RegExp方法获取地址栏参数(面向对象)
Mar 10 Javascript
如何使用jquery动态加载js,css文件实现代码
Apr 03 Javascript
jquery导航制件jquery鼠标经过变色效果示例
Dec 05 Javascript
Select标签下拉列表二级联动级联实例代码
Feb 07 Javascript
JavaScript新窗口与子窗口传值详解
Feb 11 Javascript
jQuery实现移动 和 渐变特效的点击事件
Feb 26 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
Dec 24 Javascript
javascript使用Promise对象实现异步编程
Mar 01 Javascript
jQuery绑定事件的几种实现方式
May 09 Javascript
Angularjs之filter过滤器(推荐)
Nov 27 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
Nov 19 Javascript
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
Apr 19 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代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
php&amp;mysql 日期操作小记
2012/02/27 PHP
如何利用PHP执行.SQL文件
2013/07/05 PHP
浅析php适配器模式(Adapter)
2014/11/25 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
PHP设计模式之状态模式定义与用法详解
2018/04/02 PHP
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
详解在vue-cli中使用路由
2017/09/25 Javascript
vue项目环境变量配置的实现方法
2018/10/12 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
python使用xmlrpc实例讲解
2013/12/17 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
Python 使用类写装饰器的小技巧
2018/09/30 Python
Python Pandas数据结构简单介绍
2019/07/03 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
世界最大的票务市场:viagogo
2017/02/16 全球购物
巴西电子、家电、智能手机购物网站:Girafa
2019/06/04 全球购物
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
汽车维修专业毕业生的求职信分享
2013/12/04 职场文书
办公用房租赁协议书
2014/11/29 职场文书
社区义诊通知
2015/04/24 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
Win2008系统搭建DHCP服务器
2022/06/25 Servers