前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue+element实现一个excel表格下载的功能

vue+element实现一个excel表格下载的功能

作者头像
王小婷
发布2020-09-03 15:06:46
2.9K0
发布2020-09-03 15:06:46
举报
文章被收录于专栏:编程微刊编程微刊

最近在使用vue-element-admin这个后台管理框架开源模板在做一个管理后台,使用起来其实还挺方便的,大部分的组件源码里面都已经写好了,用的时候只需要把源码拿出来修改修改,也就成了。

这里记录一下开发过程中遇到的一些功能。


资料相关
vue-element-admin

推荐指数:star:55k Github 地址:https://github.com/PanJiaChen/vue-element-admin Demo体验:https://panjiachen.github.io/vue-element-admin/#/dashboard

一个基于 vue2.0 和 Eelement 的控制面板 UI 框架,这是使用vue技术栈开发的前端程序员的首选管理系统模板,模板以及非常的成熟了,并且有相关的社区和维护人员,开发时候遇到问题也不要慌。


今天记录一个表格下载的功能

在demo给到的源码里面,可以看到也是有表格下载的功能的,在这个基础上进行一些修改,大概是这个样子,点击下载按钮,将页面上显示的表格下载出来即可。即调用后端给到的接口,直接从后端服务器上下载表格。后端会返回一个二进制文件给到我这边。

参考代码: index.vue

<template>
  <div class="app-container">
   <el-button  type="primary"  icon="el-icon-download" @click="handleDownload">
        导出基础表格
   </el-button>
  </div>
</template>
<script>
import { exportBaseInfoVIP} from '@/api/exportExcel'
export default {
  data() {
    return { 
      filename: '',
      bookType: 'xlsx'
    };
  },
  computed: {

  },
  methods: {
    downloadExcel(res, fileName = '未命名.xls') {
      debugger;
      const a = document.createElement('a')
      const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
      const url = URL.createObjectURL(blob)
      a.setAttribute('href', url)
      a.setAttribute('download', fileName)
      a.click()
    },
    async handleDownload() {
      const res = await exportBaseInfoVIP()
      this.downloadExcel(res, '会员基础信息.xls')
    },
  }
};
</script>

api

import request from '@/utils/request'
//基础信息
export const exportBaseInfoVIP = () => {
  return request({
    url: '/statistics/childrenUser/export',
    responseType:"blob",
    method: 'get'
  })
}

request.js

 if (response.headers['content-type'] === "application/x-msdownload") {
      let disposition = decodeURI(response.headers['content-disposition']);
      let fileName = disposition.split('=')[1];
      const a = document.createElement('a')
      const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
      const url = URL.createObjectURL(blob)
      a.setAttribute('href', url)
      a.setAttribute('download', fileName)
      a.click()
      return
    }

效果如下: 点击按钮,即可下载excel表格

注意:本地可能会出现下载文件名称为undefined的问题,部署在服务器上,即可获得excel文件名称。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 资料相关
    • vue-element-admin
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档