VUE中 上传excel文件并解析内容

16 篇文章 0 订阅
<el-upload  :action="url" :http-request="importExcel" list-type="text" :show-file-list="false" >
      <el-button size="small"  type="primary">导入</el-button>
    </el-upload>

   import XLSX from 'xlsx'         // 需要引入   XLSX 

  importExcel (content) {
    const file = content.file
    // let file = file.files[0] // 使用传统的input方法需要加上这一步
    const types = file.name.split('.')[1]
    const fileType = ['xlsx', 'xlc', 'xlm', 'xls', 'xlt', 'xlw', 'csv'].some(item => item === types)
    if (!fileType) {
      this.$message('格式错误!请重新选择')
      return
    }
    this.file2Xce(file).then(tabJson => {
      if (tabJson && tabJson.length > 0) {
        this.xlsxJson = tabJson
        this.fileList = this.xlsxJson[0].sheet
        let n = '匹配的字段'
        this.fileList.forEach((item, index, arr) => {
          if (item[n] === this.name) {
            this.dataForm.projectno = item['XXXX'] // 需要的值的表头
          }
        })
      }
    })
  },
  file2Xce (file) {
    return new Promise(function (resolve, reject) {
      const reader = new FileReader()
      reader.onload = function (e) {
        const data = e.target.result
        this.wb = XLSX.read(data, {
          type: 'binary'
        })
        const result = []
        this.wb.SheetNames.forEach((sheetName) => {
          result.push({
            sheetName: sheetName,
            sheet: XLSX.utils.sheet_to_json(this.wb.Sheets[sheetName])
          })
        })
        resolve(result)
      }
      // reader.readAsBinaryString(file.raw)
      reader.readAsBinaryString(file) // 传统input方法
    })
  },

借鉴了别人的

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城狮狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值