VUE中使用vue-json-excel 将后台返回的json以excel表格形式导出

参考:VUE中使用vue-json-excel 将后台返回的json以excel表格形式导出
使用vue-json-excel生成并导出excel

一、安装vue-json-excel

npm install vue-json-excel -S

二、main.js中引入

import JsonExcel from 'vue-json-excel'
Vue.component('downloadExcel', JsonExcel)

三、简单使用固定数据

代码

在这里插入图片描述

<download-excel
     class = "export-excel-wrapper"
     :data = "json_data"
     :fields = "json_fields"
      header="这是个excel的头部"
      name = "导出的表格名称.xls">
      <el-button type="primary" size="small">导出EXCEL</el-button>
</download-excel>

数据 (例子中,json_data写死的)

  • json_data:需要导出的数据

  • json_fields:里面的属性是excel表每一列的title,用多个词组组成的属性名(中间有空格的)要加双引号; 指定接口的json内某些数据下载,若不指定,默认导出全部数据中心全部字段

     json_fields: {
        姓名: "name",   
        城市: "city",
        国家: "country",
        生日:"birthdate",
        "电话 测试": "phone"    //如果命名的标题有空格,需要用双引号
      },
      json_data: [
        {
          name: "张三",
          city: "北京",
          country: "中国",
          birthdate: "1998-03-15",
          phone:"15645689652"
        },
        {
          name: "李四",
          city: "上海",
          country: "中国",
          birthdate: "1988-03-15",
          phone:"15645689652"
        }
      ]

点击按钮导出EXCEL
在这里插入图片描述

四、使用回调获取数据及详细参数

属性名类型描述默认值
data数组要输出的数据
fieldsObject声明要导出的JSON对象中的字段。就像是在制作表头 默认将导出JSON中的所有属性。
export-fieldsObject用于解决其他组件使用可变fields的问题,exportFields的工作原理与fields完全相同
type字符串表格类型[xls, csv]
name 字符串文件名data.xls
header标题表格的标题
footer字符串页脚
default-value字符串用于填充空置单元格‘’
worksheet字符串表单名称‘Sheet1’
fetch函数进行回调,以便在下载之前获取数据(如果已设置),则在按下鼠标后以及下载过程之前会立即运行。重要信息:仅在未定义数据属性的情况下有效,即不使用data参数
before-generate函数回调以在生成/获取数据之前立即调用方法,例如:显示加载进度
before-finish函数在下载框弹出之前进行回调以调用方法,例如:隐藏加载进度
stringifyLongNum布尔字符串化长整数和十进制(解决数字精度丢失的问题),默认值:false
escapeCsv布尔可以转义CSV值,以解决数字字段中的一些问题。

按需获取数据

<template>
  <div id="app">
 
    <hr>
    <h2>Fetch Example</h2>
    <downloadexcel
      class            = "btn"
      :fetch           = "fetchData"
      :fields          = "json_fields"
      :before-generate = "startDownload"
      :before-finish   = "finishDownload">
      Download Excel
    </downloadexcel>
  </div>
</template>
 
<script>
import downloadexcel from "vue-json-excel";
import axios from 'axios';
 
export default {
  name: "App",
  components: {
    downloadexcel,
  },
  data(){
    return {
      json_fields: {
        'Complete name': 'name',
        'Date': 'date',
      },
    }
  }, //data
  methods:{
    async fetchData(){
      const response = await axios.get('https://holidayapi.com/v1/holidays?key=a4b2083b-1577-4acd-9408-6e529996b129&country=US&year=2017&month=09');
      console.log(response);
      return response.data.holidays;
    },
    startDownload(){
        alert('show loading');
    },
    finishDownload(){
        alert('hide loading');
    }
  }
};
</script>
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值