前端解析读取excel

前端解析excel

记得先安装xlsx插件
在这里我是在on-change事件中做的监听解析excel
(可以直接复制,直接用)

npm install xlsx --save

直接上代码(只用看on-change事件)

 <el-upload
      v-loading="isLoading"
      ref="upload"
      :auto-upload="true"
      :headers="headers"
      :on-change="onChange"
      :on-success="handleSuccess"
      :file-list="fileList"
      :limit="1"
      :show-file-list="true"
      :action="cmsApi.excelUploadApi"
      class="ele-import-upload-uploader"
      drag>
      <i class="el-icon-upload"/>
      <div class="el-upload__text">
        将填写后的文件拖到此处,或
        <em>点击上传</em>
      </div>
    </el-upload>
onChange(e) {
      const fr = new FileReader()
      fr.readAsDataURL(e.raw)
      var f = e.raw
      var that = this
      var reader = new FileReader()
      reader.onload = function(e) {
        // console.log(e)
        let wb = that.wb
        var data = e.target.result
        if (that.rABS) {
          wb = XLSX.read(btoa(that.fixdata(data)), {// 手动转化
            type: 'base64'
          })
        } else {
          wb = XLSX.read(data, {
            type: 'binary'
          })
        }
        // wb.SheetNames[0]是获取Sheets中第一个Sheet的名字
        // wb.Sheets[Sheet名]获取第一个Sheet的数据
        // document.getElementById("demo").innerHTML= JSON.stringify( XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]) );
        const data1 = JSON.parse(JSON.stringify(XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]])))
        console.log(data1)
        return
      }
      if (this.rABS) {
        reader.readAsArrayBuffer(f)
      } else {
        reader.readAsBinaryString(f)
      }
    },

excel和最后的结果如下
在这里插入图片描述这是excel
在这里插入图片描述这是解析后的结果

拿到每一个单元格所对应的键值对了,之后想做什么操作就比较自由了

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值