欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-20 16:31:28
...

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

首先疯狂的安装依赖

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

vue+element 实现下载/导出 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()方法即可;