js read excel 处理其中的日期

531 阅读1分钟
 <el-upload
          class="upload-demo"
          ref="upload"
          :on-remove="handleRemove"
          :file-list="fileList"
          :auto-upload="false"
          :multiple="false"
          accept=".xls,.xlsx"
          action=""
          :on-change="fileChange"
          :http-request="httpRequest"
        >
          <el-button slot="trigger" size="small" type="primary" icon="el-icon-plus">选取文件</el-button>
          <div class="el-upload__tip" slot="tip">只能上传excel文件</div>
        </el-upload>
        
        
        
readWorkbookFromLocalFile(file, callback) {
      var reader = new FileReader()
      reader.onload = function(e) {
        var data = e.target.result
        var workbook = XLSX.read(data, { type: 'binary', cellDates: true })
        if (callback) callback(workbook)
      }
      reader.readAsBinaryString(file)
    },
    
    
    
    fileChange(file, fileList) {
      // console.log(file.raw)
      this.fileList = [file]
      // if (!/\.xlsx$/g.test(file.raw.name)) {
      //   this.$baseMessage('请选择xlsx文件', 'error')
      //   return
      // }
      this.parsingExcel = true
      this.readWorkbookFromLocalFile(file.raw, workbook => {
        var sheetNames = workbook.SheetNames // 工作表名称集合
        let wb = workbook
        var worksheet = wb.Sheets[sheetNames[0]] // 这里我们只读取第一张sheet

        // console.log('raw wb', worksheet)
        for (const i in worksheet) {
          if (worksheet[i]['v'] !== null && worksheet[i]['v'] !== undefined && worksheet[i]['t'] == 'd') {
            // console.log('here1', worksheet[i]['v'])
            worksheet[i]['v'] = parseTime(new Date(worksheet[i]['w']), '{y}-{m}-{d} {h}:{i}')
            worksheet[i]['t'] = 's'
            worksheet[i]['w'] = worksheet[i]['v']
            console.log('here2', worksheet[i]['v'])
          }
        }

        var csv = XLSX.utils.sheet_to_csv(worksheet)
        var json = XLSX.utils.sheet_to_json(worksheet, {
          header: 1,
          defval: '',
          raw: false,
          rawNumbers: true
        })
        console.log(
          'json',
          XLSX.utils.sheet_to_json(worksheet, {
            header: 1,
            defval: ''
            // raw: false,
            // rawNumbers: true
          }),
          csv
        )
        
         
        this.excelContent = rows
        this.excelTplId = parseInt(rows[0])
        this.parsingExcel = false

        
      })
    },
    ```