vue账单导出xlsx表格,多页签

效果图

 

 

依赖 

import * as xlsx from "xlsx";

"xlsx": "^0.14.5"

实现

 excel() {
     //导出sheet1 his   sheet2 bank 
      if (
        this.tableData.bankRecordList.length == 0 &&
        this.tableData.hisRecordList.length == 0
      ) {
        return this.$message({
          showClose: true,
          message: "暂无可导出数据",
          type: "warning",
        });
      }
      //his
      var titleName_his = [
        "金额",
        "商户单号",
        "关联单号",
        "时间",
        "交易类型",
        "支付方式",
        "报表号",
      ];
      var titleValue_his = [
        "received",
        "sn",
        "relatedSn",
        "createTime",
        "tradeType",
        "billType",
        "term",
      ];
      //bank
      var titleName_bank = [
        "金额",
        "商户单号",
        "关联单号",
        "时间",
        "交易类型",
        "支付方式",
      ];
      var titleValue_bank = [
        "received",
        "sn",
        "relatedSn",
        "createTime",
        "tradeType",
        "billType",
      ];
      var jsonData_his = this.formatJson(
        titleValue_his,
        this.tableData.hisRecordList
      );
      var jsonData_bank = this.formatJson(
        titleValue_bank,
        this.tableData.bankRecordList
      );

      const data_his = [
        [
          "起止日期:" +
            this.dateRange[0] +
            "-" +
            this.dateRange[1] +
            " " +
            "支付渠道:" +
            this.formatterBillTypes(this.billType),
        ],
        ["HIS金额:" + this.tableData.hisAmount || "0"],
        ["HIS笔数:" + this.tableData.hisCount || "0"],
        ["银行金额:" + this.tableData.bankAmount || "0"],
        ["银行笔数:" + this.tableData.bankCount || "0"],
        [],
        ...[titleName_his],
        ...jsonData_his,
      ];
      const data_bank = [...[titleName_bank], ...jsonData_bank];
      const wb = xlsx.utils.book_new();
      const ws_his = xlsx.utils.aoa_to_sheet(data_his);
      const ws_bank = xlsx.utils.aoa_to_sheet(data_bank);
      xlsx.utils.book_append_sheet(wb, ws_his, "sheet 1 HIS");
      xlsx.utils.book_append_sheet(wb, ws_bank, "sheet 2 bank");
      var wbout = xlsx.write(wb, {
        bookType: "xlsx",
        bookSST: false,
        type: "array",
      });

      saveAs(
        new Blob([wbout], { type: "application/octet-stream" }),
        "对账汇总详情.xlsx"
      );
    },
    formatJson(filterVal, jsonData) {
      var list = [];
      jsonData.map((v) => {
        var aa = [];
        filterVal.map((j) => {
          aa.push(v[j]);
        });
        list.push(aa);
      });
      return list;
    },

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值