91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么利用js讀取excel文件并繪制echarts圖形

發布時間:2022-05-25 09:17:40 來源:億速云 閱讀:530 作者:iii 欄目:開發技術

這篇“怎么利用js讀取excel文件并繪制echarts圖形”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么利用js讀取excel文件并繪制echarts圖形”文章吧。

1、場景描述

  • 通常來說,前端要拿到excel數據,都是先上傳存儲數據庫,然后再請求后端接口,獲取數據。

  • 但有100個產品經理,就會有101個不同的需求。

  • 本文以自己的vue項目為例。

2、需求描述

  • 現有一張excel財務報表,需要根據這張excel表繪制成各種echarts圖形,用于年度匯報。

  • 不經過后端,前端獨立完成。

3、功能實現

首先,為了將excel數據繪制成echarts圖表,前端得拿到excel數據。

這里我們借助js-xlsx.js庫,安裝xlsx:

cnpm i -S xlsx

你也可以cdn的方式直接引用:

<script src="http://oss.sheetjs.com/js-xlsx/xlsx.full.min.js"></script>

首先你需要讀取excel文件:

<input type="file" id="excel-file">

添加響應事件change獲取excel數據:

<input type="file" id="excel-file" @change="updateFile">

通過updateFile接受數據

updateFile(e) {
  let files = e.target.files;
  console.log(files)
}

得到files,說明我們已經獲取到上傳的excel文件。現在我們需要將files轉化成我們熟悉的數組類型。 我們使用fileReader方法。

FileReader共有4種讀取方法:

  • 1.readAsArrayBuffer(file):將文件讀取為ArrayBuffer。

  • 2.readAsBinaryString(file):將文件讀取為二進制字符串

  • 3.readAsDataURL(file):將文件讀取為Data URL

  • 4.readAsText(file, [encoding]):將文件讀取為文本,encoding缺省值為'UTF-8'

 updateFile(e) {
  let _this = this;
  let files = e.target.files;
  let fileReader = new FileReader();
  fileReader.onload = function(ev) {
    try {
      let data = ev.target.result;
      let workbook = XLSX.read(data, { type: "binary" }); // 以二進制流方式讀取得到整份excel表格對象
      let sheetName = workbook.Sheets[workbook.SheetNames[0]]; // 這里我們只讀取第一張表,獲取表名(如Sheet1)
      _this.excelData = XLSX.utils.sheet_to_json(sheetName, {
        header: "A",
        raw: true,
        defval: " " // 意思是從頭開始匹配,如遇到空格,將跳過執行,并替換為" "字符串。
      });
      console.log(_this.excelData) // excelData在data()中聲明的變量, _this.excelData就是我們熟悉的數組數據了。
    } catch (e) {
      return _this.$message.error("文件類型不正確!");
    }
  };
  // fileReader.readAsBinaryString(files[0]); // 將文件讀取為二進制字符串展示在頁面
}

excel多張表格的處理:

var fromTo = '' // 表格范圍,可用于判斷表頭數量是否正確
// 遍歷每張表讀取
for (var sheet in workbook.Sheets) {
    if (workbook.Sheets.hasOwnProperty(sheet)) {
        fromTo = workbook.Sheets[sheet]['!ref'] // 表頭數量
        _this.excelData = _this.excelData.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]), {
            header: 'A', 
            raw: true, 
            defval: ' '
        })
    }
}

將得到的數據渲染在echarts中,效果如下:

怎么利用js讀取excel文件并繪制echarts圖形

以上就是關于“怎么利用js讀取excel文件并繪制echarts圖形”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岗巴县| 灵山县| 九江县| 广东省| 荥经县| 汝州市| 漠河县| 泾源县| 长岛县| 宁晋县| 彭州市| 陈巴尔虎旗| 通山县| 乌兰浩特市| 特克斯县| 上思县| 唐海县| 海林市| 汉寿县| 昌江| 左云县| 上虞市| 土默特右旗| 太和县| 南城县| 修武县| 南昌市| 枣强县| 岑巩县| 将乐县| 合川市| 凌云县| 正镶白旗| 成安县| 宁津县| 河北区| 盐亭县| 柏乡县| 新密市| 澄迈县| 梁平县|