VUE Excel文件导出

<el-button
            v-waves
            class="filter-item"
            type="primary"
            icon="el-icon-printer"
            @click="handleExportList"
          >
            导出
          </el-button>

导出按钮

handleExportList() {    //导出触发
      const loading = this.$loading({
        lock: true,
        text: '正在导出...',
        spinner: 'el-icon-loading',
        background: 'rgba(0, 0, 0, 0.7)'
      })

      fetchList(            //当前页面查询方法
        {
          page: 1,
          limit: -1
        },
        this.listQuery,           查询条件
      ).then((response) => {
        import('@/vendor/Export2Excel').then((excel) => {
          const tHeader = [            //表头
            '设备编码',
            '设备名称',
            '资产状态',
            '资产性质',
            '库存时间',
            '存放位置',
            '管理部门',
            '资产管理员',
            '状态变更时间',
            '闲置类型',
            '闲置天数'

          ]
          const filterVal = [    //对应字段
            'deviceCode',
            'deviceName',
            'stateName',
            'assetNatureName',
            'inRepositoryTime',
            'useAreaName',
            'manageDeptName',
            'assetManageName',
            'statusChangeDate',
            'idleType',
            'idleDays'
          ]
          const data = this.formatJson(filterVal, response.data.data)

          loading.close()

          excel.export_json_to_excel({
            header: tHeader,
            data,
            filename: '闲置资产详细信息',
            autoWidth: this.autoWidth,
            bookType: this.bookType
          })
        })
      })
    },

    formatJson(filterVal, jsonData) {
      return jsonData.map((v) =>
        filterVal.map((j) => {
          if (j === 'users') {
            let userNames = ''
            v[j].filter((user) => {
              userNames = userNames + ',' + user.userName
            })
            return userNames.substring(1)
          } else if (j === 'maintainers') {
            let mtNames = ''
            v[j].filter((user) => {
              mtNames = mtNames + ',' + user.userName
            })
            return mtNames.substring(1)
          } else {
            return v[j]
          }
        }),
      )
    },

方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值