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实现计算加载页面所用的时间
Apr 02 Javascript
js 取时间差去掉周六周日实现代码
Dec 25 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
Jan 11 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
Apr 22 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
Jun 05 Javascript
javascript中全局对象的parseInt()方法使用介绍
Dec 19 Javascript
jquery实现弹出层遮罩效果的简单实例
Mar 03 Javascript
javascript动态判断html元素并执行不同的操作
Jun 16 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
Apr 20 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
Apr 27 Javascript
vue.js中proxyTable 转发请求的实现方法
Sep 20 Javascript
vue学习笔记之slot插槽用法实例分析
Feb 29 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用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
php使用CURL伪造IP和来源实例详解
2015/01/15 PHP
php实现简单爬虫的开发
2016/03/28 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
PHP结合Ueditor并修改图片上传路径
2016/10/16 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
javascript下function声明一些小结
2007/12/28 Javascript
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
2013/04/17 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
Seajs源码详解分析
2019/04/02 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
Python脚本暴力破解栅栏密码
2015/10/19 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
天网面试题
2013/04/07 面试题
优秀教研组申报材料
2014/12/26 职场文书
优秀新员工事迹材料
2019/05/13 职场文书
Nginx速查手册及常见问题
2022/04/07 Servers