Vue插件之导出EXCEl

3 篇文章 0 订阅

1.npm安装依赖

npm install vue-json-excel

2.项目主文件入口main.js全局引入

import JsonExcel from 'vue-json-excel'

Vue.component('downloadExcel', JsonExcel)

3.项目中使用

 <download-excel :data="exportData" :fields="json_fields" name="filename.xls" >
      <span>导出数据</span>
 </download-excel>

4.组件属性说明

属性名类型类型
dataArray需要导出的数据,支持中文
fieldsObject定义需要导出的数据字段
namestring导出EXCEL的文件名
typestring导出EXCLE的文件类型,两种格式xls,csv,默认是xls
fetchfunction回调函数。在下载前通过接口获取数据。只有在没有data属性的情况下该属性才会生效
下面来举几个栗子
<download-excel
    class   = "btn btn-default"
    :data   = "json_data"
    :fields = "json_fields"
    name    = "filename.xls">

    Download Excel (可以自定义自己想要的html)

</download-excel>
const app = new Vue({
    el: '#app',
    data: {
     //列出自己需要导出的字段
        json_fields: {
            //生成excel的字段:导出数据的字段
            'Complete name': 'name',
            'City': 'city',
            'Telephone': 'phone.mobile',
            'Telephone 2' : {
                field: 'phone.landline',
                callback: (value) => {
                    return `Landline Phone - ${value}`;
                }
            },
        },
     //导出的数据
        json_data: [
            {
                'name': 'Tony Peña',
                'city': 'New York',
                'country': 'United States',
                'birthdate': '1978-03-15',
                'phone': {
                    'mobile': '1-541-754-3010',
                    'landline': '(541) 754-3010'
                }
            },
            {
                'name': 'Thessaloniki',
                'city': 'Athens',
                'country': 'Greece',
                'birthdate': '1987-11-23',
                'phone': {
                    'mobile': '+1 855 275 5071',
                    'landline': '(2741) 2621-244'
                }
            }
        ]
    }
})
json_fields的回调函数有3种写法
1.写法一
 json_fields: {
        'Complete name': 'name',
        'City': 'city',
        'Telephone': 'phone.mobile',
        'Telephone 2' : {
            //带field:从该条数据中选择一个字段最深处的数据
            field: 'phone.landline',
            //value就是这个字段值代表最深处的数据
            callback: (value) => {
                return `Landline Phone - ${value}`;
            }
        },
    },
2.写法二
json_fields: {
       'Complete name': 'name',
       'City': 'city',
        'Telephone': 'phone.mobile',
        'Telephone 2' : {
       //带field:从该条数据中选择一个字段
       field: 'phone', 
            //value就是这个字段值
       callback: (value) => {
         return `Landline Phone - ${value.landline}`;
              } 
      }, 
    },  
3.写法三
json_fields: {
        'Complete name': 'name',
        'City': 'city',
        'Telephone': 'phone.mobile',
        'Telephone 2' : {
            //没有field:value代表整条数据
            callback: (value) => {
                return `Landline Phone - ${value.phone.landline}`;
            }
        },
    },

https://www.cnblogs.com/yy136/p/10015561.html

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值