js前端導出Excel表格後數字自動變成科學計數法問題

通常的文件導出都是後端進行導出,最近一個項目遇到導出接口掛掉了,前端實現導出的狀況。前端

背景是vue框架,iView組件。能夠直接使用exportCsv方法進行導出。vue

導出時進行一下行和列的切割就能夠了。後端

成功導出後,打開發現身份證號、手機號等超過10位的被默認科學計數法了。雖然數據是字符串,可是導出的時候仍是被默認當成了數值。因而就被使用了科學計數法。表格點擊一下就會自動變成數字的,可是對於咱們開發人員來講,能作的更好固然仍是要作到最好。框架

解決方法:在數據篩選的時候手動處理一下。直接上代碼this

export2Excel() {
      if (this.selectedUserId.length < 1) {
        this.$Message.error("請選擇要導出的行");
        return false;
      }
      this.$refs.selection.exportCsv({
          filename: '導出文件',
          columns: this.columns.filter((col, index) => index < 11 && index > 0),
          data: this.transCharactor(this.dataTable.filter((data, index) => this.selectedUserId.indexOf(data.userId) > -1))
      });
    },
    transCharactor(dataList) {
      $.each(dataList, function(index, e) {
        for (var v in e) {
          e[v] = "\t" + e[v].toString()
        }
      })
      return dataList
    }

因爲這裏的數據都是字符串,全部我直接就使用了toString。spa

方法原則就是轉換成字符,並且拼接上別的字符使其不會被當成數字處理。(e[v] = "\t" + e[v].toString())code

除此以外,網上還有拼接單引號的方法,可是這個方法會致使看起來不舒服,試想每一個單元格都多了一個單引號,老是很差的。blog

相關文章
相關標籤/搜索