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显示选择目录对话框的代码
Nov 10 Javascript
ExtJs使用总结(非常详细)
Mar 22 Javascript
jquery cookie实现的简单换肤功能适合小网站
Aug 25 Javascript
原生javaScript做得动态表格(注释写的很清楚)
Dec 29 Javascript
jquery 通过name快速取值示例
Jan 24 Javascript
鼠标滑过出现预览的大图提示效果
Feb 26 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
Apr 20 Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 Javascript
AngularJS中$apply方法和$watch方法用法总结
Dec 13 Javascript
jquery,js简单实现类似Angular.js双向绑定
Jan 13 Javascript
Layui Form 自定义验证的实例代码
Sep 14 Javascript
微信小程序实现聊天室功能
Jun 14 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
2006/12/13 PHP
PHP 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
PHP如何读取由JavaScript设置的Cookie
2017/03/22 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
javascript 基础篇4 window对象,DOM
2012/03/14 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
jquery重复提交请求的原因浅析
2014/05/23 Javascript
基于jQuery实现的无刷新表格分页实例
2016/02/17 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
Python中for循环详解
2014/01/17 Python
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
机器学习python实战之手写数字识别
2017/11/01 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
python linecache 处理固定格式文本数据的方法
2019/01/08 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
英国高街电视:High Street TV
2018/05/22 全球购物
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
企业总经理任命书
2014/06/05 职场文书
预防艾滋病宣传标语
2014/06/25 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
个人委托书怎么写
2014/09/17 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
年度考核登记表个人总结
2015/03/06 职场文书