vue excel导出

19 篇文章 0 订阅

好久没有写过文章了,今天简单写一下几个方法

首先是对,vue excel导出,简单利用Export2Excel进行二次封装。废话不多说直接上代码

export function excel(columns, list, excelName) {
  console.log(list)
  import("@/vendor/Export2Excel").then((excel) => {
    let tHeader = [],
      filterVal = [];
    columns?.forEach((item) => {
      tHeader.push(item.title);
      filterVal.push(item.key);
    });
    const data = list?.map((v) => filterVal.map((j) => v[j]));
    excel.export_json_to_excel({
      header: tHeader,
      data,
      filename: excelName,
      autoWidth: true,
      bookType: "xlsx",
    });
  });
  return true
}

columns 为表头内容,汉字和对应的字段大致为

punishExcelParams: [
        {
          title: "司机ID",
          key: "driver_id",
        },
        {
          title: "登录ID",
          key: "login_id",
        },
        {
          title: "姓名",
          key: "name",
        }
      ],
      可以对应请求数据的参数

list 这是对应的数据,excelName表示为导出表格的名字

第二个就是json或数组中的数字,由string,转换为number类型,(一个简单的遍历)

// 遍历提交数据中字符串类型转换为数组
export function stringToNumber(val) {
    if (typeof val == 'object') {
        if (Array.isArray(val) === true) {
            for (let i = 0; i < val?.length; i++) {
                if (typeof val[i] == 'string') {
                    if (val[i] == Number(val[i])) {
                        val[i] = Number(val[i])
                    }
                } else if (typeof val[i] == 'object') {
                    val[i] = stringToNumber(val[i])
                }
            }
        }
        if (Array.isArray(val) === false) {
            for (let key in val) {
                if (typeof val[key] == 'string') {
                    if (val[key] == Number(val[key])) {
                        val[key] = Number(val[key])
                    }
                } else if (typeof val[key] == 'object') {
                    val[key] = stringToNumber(val[key])
                }
            }
        }
    }
    return val
}

本文链接:点击
博主个人小博客:嘿嘿

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值