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 面向对象之重载
May 04 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
Jun 05 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
Sep 10 Javascript
javascript数组快速打乱重排的方法
Jan 02 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
Aug 28 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
Dec 17 Javascript
JavaScript实现复制内容到粘贴板代码
Mar 31 Javascript
jQuery File Upload文件上传插件使用详解
Dec 06 Javascript
jQuery实现一个简单的验证码功能
Jun 26 jQuery
微信小程序媒体组件详解(视频,音乐,图片)
Sep 19 Javascript
js实现复制功能(多种方法集合)
Jan 06 Javascript
javascript实现商品图片放大镜
Nov 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下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
2014/09/23 PHP
php如何连接sql server
2015/10/16 PHP
jQuery学习笔记之jQuery的DOM操作
2010/12/22 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
Jquery中Ajax 缓存带来的影响的解决方法
2011/05/19 Javascript
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
node.js 动态执行脚本
2016/06/02 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
EasyUI折叠表格层次显示detailview详解及实例
2016/12/28 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
Angular2学习教程之ng中变更检测问题详解
2017/05/28 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
AngularJs 延时器、计时器实例代码
2017/09/16 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
详解小程序如何改变onLoad的执行时机
2019/11/01 Javascript
详解 Python 读写XML文件的实例
2017/08/02 Python
python图书管理系统
2020/04/05 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
Keras使用tensorboard显示训练过程的实例
2020/02/15 Python
Python基于Socket实现简单聊天室
2020/02/17 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
python3实现飞机大战
2020/11/29 Python
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
详解HTML5表单新增属性
2016/12/21 HTML / CSS
表决心的诗句大全
2014/03/11 职场文书
2014年房地产销售工作总结
2014/12/01 职场文书
2015年教研工作总结
2015/05/23 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python