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


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

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

導出時進行一下行和列的切割就可以了。

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

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

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。

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

除此之外,網上還有拼接單引號的方法,但是這個方法會導致看起來不舒服,試想每個單元格都多了一個單引號,總是不好的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM