vue element-ui 实现导出excel 所有分页的全部数据

项目中遇到分页表格需要全部导出Excel的问题,通过实践发现原有方法存在错误,表单条数计算应使用this.page.pageSize而非this.pageSize。通过修正这一细节,成功实现了所有分页数据的导出功能。

项目场景:

含有分页的表单数据全部导出功能


问题描述:

实践相关博客.的方法失败


原因分析:

发现表单条数应为:this.page.pageSize 而不是this.pageSize

this.page.pageSize=this.tableData.length;

解决方案:

//Excel导出
        exportExcel() {
            //因为此处有分页,每页展示6条数据,在方法调用的开始,展示所有数据,导出之后再把条数更改过来
            this.page.pageSize = this.tableData.length;

            this.$nextTick(function () {
                let wb = XLSX.utils.table_to_book(
                    //el-table标签内设置的id="download"
                    document.querySelector("#download")
                ); 

                let wbout = XLSX.write(wb, {
                    bookType: "xlsx",
                    bookSST: true,
                    type: "array",
                });
                try {
                    FileSaver.saveAs(
                        new Blob([wbout], { type: "application/octet-stream" }),
                        "仓库汇总表.xlsx"
                    );
                } catch (e) {
                    if (typeof console !== "undefined") console.log(e, wbout);
                }
                this.page.pageSize = 6; //表格还原
                return wbout;
            });
        }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值