vue+element 实现下载/导出 excel表格

vue+element 实现下载/导出 excel表格

首先疯狂的安装依赖

  • npm install -S file-saver xlsx
  • npm install -D script-loader
  • npm install moment --save
    然后在src下面新建文件夹 excel,在excel文件夹下新建两个文件

在这里插入图片描述
在页面中引入 moment
import moment from "moment ";
引入下面的方法复制即可: outExe()方法需要一个事件去触发这个方法;

methods:{
        outExe() {
            this.$confirm('此操作将导出excel文件, 是否继续?', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning'
            }).then(() => {
                this.excelData = this.tableData;//你要导出的数据list。
                this.export2Excel()
            }).catch(() => {

            });
        },
        export2Excel() {
            var that = this;
            require.ensure([], () => {
                const { export_json_to_excel } = require('../excel/Export2Excel'); //这里必须使用绝对路径
                const tHeader = ['date','address', 'name']; // 导出的表头名 (就是你的字段)
                const filterVal = ['date','address', 'name']; // 导出的表头字段名
                const list = that.excelData;
                const data = that.formatJson(filterVal, list);
                let time1,time2 = '';
                if(this.start !== '') {
                    time1 = moment(that.start).format('YYYY-MM-DD')
                }
                if(this.end !== '') {
                    time2 = moment(that.end).format('YYYY-MM-DD')
                }
                export_json_to_excel(tHeader, data, `[${time1}-${time2}]提现管理excel`);// 导出的表格名称,根据需要自己命名
            })
        },
        formatJson(filterVal, jsonData) {
            return jsonData.map(v => filterVal.map(j => v[j]))
        }

    }

这是在单个页面里面使用 如果是需要在多个页面里面引入的话,建议使用 mixins ,就可以只引入一边就可以,然后再每个页面里面使用时间调用这个outExe()方法即可;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值