Vue导出Excel

2 篇文章 0 订阅
2 篇文章 0 订阅

Excel 的导入导出都是依赖于js-xlsx来实现的。

在 js-xlsx的基础上又封装了Export2Excel.js来方便导出数据。
使用
由于 Export2Excel不仅依赖js-xlsx还依赖file-saverscript-loader

所以你先需要安装如下命令:

npm install xlsx file-saver -S
npm install script-loader -S -D

由于js-xlsx体积还是很大的,导出功能也不是一个非常常用的功能,所以使用的时候建议使用懒加载。使用方法如下:

import('@/vendor/Export2Excel').then(excel => {
  excel.export_json_to_excel({
    header: tHeader, //表头 必填
    data, //具体数据 必填
    filename: 'excel-list', //非必填
    autoWidth: true, //非必填
    bookType: 'xlsx' //非必填
  })
})

注意 v3.9.1+

在v3.9.1+以后的版本中移除了对 Blob 的兼容性代码,如果你还需要兼容很低版本的浏览器可以手动引入blob-polyfill进行兼容。

比如你给按钮添加点击事件导出:
此时需要注意data数据的类型 data:[ [],[],[],[] ] , 需要注意对数据的处理

handleDownload() {
            this.downloadLoading = true;
            //表头
            const tHeader = {
                角色Id: "id",
                日期: "created_at",
                角色: "name",
                描述: "description",
            };
            const filterVal = [
                "timestamp",
                "title",
                "type",
                "importance",
                "status",
            ];
            //对数据中需要导出的字段进行遍历形成新的二维数据,然后进行导出
            const data = this.rolesData.map((item) => {
                return [item.id, item.created_at, item.name, item.description];
            });
         
            import("@/vendor/Export2Excel")
                .then((excel) => {
                    excel.export_json_to_excel({
                        header: Object.keys(tHeader), //表头 必填
                        data, //具体数据 必填
                        filename: "role-list", //非必填
                        autoWidth: true, //非必填
                        bookType: "xlsx", //非必填
                    });
                    this.downloadLoading = false;
                })
                .catch((err) => {
                    this.$message({
                        type: "error",
                        message: "导出失败",
                    });
                    this.downloadLoading = false;
                });
        },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值