Vue导入Excel文件转换为json

安装插件

npm install xlsx

<input ref="upload" hidden type="file" class="excelBox" @change="importExcelHandler" />

hidden隐藏样式 使用ref获取dom 调用内置方法 

this.$refs.upload.click()
importExcelHandler(e) {
      let filObj = e.target.files[0]

      // FileReader 对象就是专门处理二进制数据的,主要用于将文件内容读入内容
      const fileReader = new FileReader()

      // .readAsArrayBuffer, 读取指定的 Blob 或 File 内容
      fileReader.readAsArrayBuffer(filObj)
      fileReader.onload = event => {
        const fileData = event.target.result

        // 从电子表格字节中提取数据
        const workbook = XLSX.read(fileData, {
          type: 'binary'
        })

        // 选项卡顺序列出工作表名称
        const wsname = workbook.SheetNames[0]

        // 从工作表创建JS 值数组
        const sheetJson = XLSX.utils.sheet_to_json(workbook.Sheets[wsname])
        console.log(sheetJson, '得到的表格 JSON 内容')
        const newArr = []
        sheetJson.forEach(item => {
          newArr.push({
            order_no: item.订单编号,
            price: item.单价,
            nickname: item.昵称,
            alipay: item.支付宝,
            site: item.收货地址,
            alipay_no: item.支付宝交易号,
            payment: dayjs(item.付款时间).format('YYYY-MM-DD'),
            delivery: dayjs(item.发货时间).format('YYYY-MM-DD'),
            completion: dayjs(item.完成时间).format('YYYY-MM-DD'),
            createtime: dayjs(item.付款时间).format('YYYY-MM-DD')
          })
        })
        console.log(newArr, '能处理吗?')
        this.uploadHandler(newArr)
      }
    },
    async uploadHandler(newArr) {
      const { data } = await this.$post('/api/index/impo', { impo: JSON.stringify(newArr) })
      console.log(data, '导入成功了吗?')
    },

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值