批量上传附件

批量上传附件

<el-upload
  class="upload-demo"
  action="#"
  :on-change="handleChange2"
  :show-file-list="false"
  :on-remove="handleRemove"
  accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
  :auto-upload="false"
>
  <el-button  v-if="false" size="small" type="primary">批量上传</el-button>

</el-upload>

handleChange2(file, fileList) {
  this.fileTemp = file.raw
  console.log(file)
  // 判断上传文件格式
  if (this.fileTemp) {
    if (
      this.fileTemp.type ===
        'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ||
      this.fileTemp.type === 'application/vnd.ms-excel'
    ) {
      this.importfxx(this.fileTemp)
    } else {
      this.$message({
        type: 'warning',
        message: '附件格式错误,请删除后重新上传!'
      })
    }
  } else {
    this.$message({
      type: 'warning',
      message: '请上传附件!'
    })
  }
},
handleRemove(file, fileList) {
  this.fileTemp = null
},
importfxx(obj) {
  // 通过DOM取文件数据
  this.file = obj
  var rABS = false // 是否将文件读取为二进制字符串
  var f = this.file
  var reader = new FileReader()
  FileReader.prototype.readAsBinaryString = function(f) {
    var binary = ''
    var rABS = false // 是否将文件读取为二进制字符串
    var wb // 读取完成的数据
    var outdata
    var reader = new FileReader()
    reader.onload = function(e) {
      var bytes = new Uint8Array(reader.result)
      console.log(reader.result)
      var length = bytes.byteLength
      for (var i = 0; i < length; i++) {
        binary += String.fromCharCode(bytes[i])
      }
      var XLSX = require('xlsx')
      if (rABS) {
        wb = XLSX.read({
          // 手动转化
          type: 'base64'
        })
      } else {
        wb = XLSX.read(binary, {
          type: 'binary'
        })
      }
      outdata = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]) // outdata就是读取excel内容之后输出的东西
      this.da = [...outdata]
      const arr = []
      this.da.map((v) => {
        const obj = {}
        obj.ip = v['ip'] // ip是表的标题
        arr.push(obj)
      })

      // return arr
      console.log(this.da)
      // 把读取的excel表格中的内容放进tableData2中(这里要改成自己的表的名字)
    }
    reader.readAsArrayBuffer(f)
  }
  if (rABS) {
    reader.readAsArrayBuffer(f)
  } else {
    reader.readAsBinaryString(f)
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值