当前位置: 首页 > 编程笔记 >

vue使用axios实现excel文件下载的功能

龚博涛
2023-03-14
本文向大家介绍vue使用axios实现excel文件下载的功能,包括了vue使用axios实现excel文件下载的功能的使用技巧和注意事项,需要的朋友参考一下

前端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实现excel文件下载内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 本文向大家介绍vue+axios实现文件下载及vue中使用axios的实例,包括了vue+axios实现文件下载及vue中使用axios的实例的使用技巧和注意事项,需要的朋友参考一下 功能:点击导出按钮,提交请求,下载excel文件; 第一步:跟后端童鞋确认交付的接口的response header设置了 以及返回了文件流。 第二步:修改axios请求的responseType为blob,以pos

  • 本文向大家介绍vue+axios实现post文件下载,包括了vue+axios实现post文件下载的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了vue+axios实现post文件下载的具体代码,供大家参考,具体内容如下 功能:点击导出按钮,提交请求,下载excel文件; 这里是axios的post方法。get方法请点击这里=》here  第一步:跟后端童鞋确认交付的接口的respo

  • 本文向大家介绍vue + axios get下载文件功能,包括了vue + axios get下载文件功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了vue + axios 下载文件的具体代码,供大家参考,具体内容如下 这里是axios的get方法。post方法请点击这里=》here 注意点: Herder 请求头需注意 content-disposition:”attachme

  • 本文向大家介绍.netcore+vue 实现压缩文件下载功能,包括了.netcore+vue 实现压缩文件下载功能的使用技巧和注意事项,需要的朋友参考一下 一.前言 目前接触的项目中,给定的需求是将系统内所有用户的数据整理好,并保存到文件夹内,目的主要是防止用户在实施人员已配置好的基础上由于不熟悉系统,导致的误删或者误操作。减少实施人员的配置工作。我首先想到的就是将数据导入到Excel中,并以各个

  • 本文向大家介绍vue实现点击按钮下载文件功能,包括了vue实现点击按钮下载文件功能的使用技巧和注意事项,需要的朋友参考一下 项目中需要用到文件下载功能,查了资料发现需要用到a标签的特性,但是这边需要用到点击按钮下载,懒得写样式,于是用了以下代码. 在el-button的外面套了一层el-link,如下图,可以正常下载 以下是el-link文字链接的属性 总结 以上所述是小编给大家介绍的vue实现点

  • 问题内容: 我以前使用Axios下载GET端点提供的文件。端点已更改,现在是POST,但是不需要参数。我正在更新原始的下载方法,但是返回了损坏的文件。 我不知道,如果问题出在,或如何响应的处理或全部的上方。到目前为止,我已经尝试了各种选择,但没有运气。任何建议将不胜感激! 我已经能够使用Postman下载文件,所以我知道端点提供的文件很好。我只是无法在我的React代码中理清参数来做到这一点。 问