vue-admin-template中使用Export2Excel.js实现导出excel功能

vue-admin-template中使用Export2Excel.js实现导出excel功能


一、安装依赖包

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

二、在项目中引入Export2Excel.js

由于我们在 vue-admin-template基础模板中没有该js文件,我们需要在vue-element-admin官网中查阅文档,将对应的Export2Excel.js代码引入到自己的项目中,这里直接将链接: Export2Excel.js的代码直接复制到自己的项目中,使用其中的export_json_to_excel方法来实现功能。

三、使用

vue-element-admin官网中作者推荐我们使用懒加载引入我们的Export2Excel.js,因为Export2Excel.js中的依赖包js-xlsx还是很大的,这里我们按照官网中推荐的方法来使用。

handleDownload() {
      this.downloadLoading = true
      import('@/vendor/Export2Excel').then(async excel => {
        const headers = {
          姓名: 'username',
          手机号: 'mobile',
          入职日期: 'timeOfEntry',
          聘用形式: 'formOfEmployment',
          转正日期: 'correctionTime',
          工号: 'workNumber',
          部门: 'departmentName'
        }
        try {
          const { rows } = await getEmployees({ page: 1, size: this.total })
          const data = this.formatJson(headers, rows)
          const multiHeader = [['姓名', '主要信息', '', '', '', '', '部门']]
          const merges = ['A1:A2', 'B1:F1', 'G1:G2']
          excel.export_json_to_excel({
            header: Object.keys(headers),
            data,
            filename: '员工数据',
            multiHeader,
            merges
          })
        } catch (err) {
          console.log(err)
        }
        this.downloadLoading = false
      })
    },
    formatJson(headers, rows) {
      // 将json数据转换成导出excel参数所需要的数组中包数组的格式
      return rows.map(v => {
        // 先找到每条员工数据
        return Object.keys(headers).map(key => {
          // 找到每个中文表头key,则headers[key]就是中文表头对应的英文
          if (
            headers[key] === 'timeOfEntry' ||
            headers[key] === 'correctionTime'
          ) {
            // 转换时间格式
            return formatDate(v[headers[key]])
          }
          if (headers[key] === 'formOfEmployment') {
            const obj = employeesConstant.hireType.find(
              item => item.id === v[headers[key]]
            )
            return obj ? obj.value : '未知'
          }
          return v[headers[key]]
        })
      })
    }

四、参数

参数说明类型可选值默认值
header导出数据的表头Array/[]
data导出的具体数据Array/[[]]
filename导出文件名String/excel-list
autoWidth单元格是否要自适应宽度Booleantrue / falsetrue
bookType导出文件类型Stringxlsx, csv, txt, morexlsx
multiHeader复杂表头的部分Array/[[]]
merges需要合并的部分Array/[]
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值