最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何利用JavaScript讀取excel文件并繪制echarts圖形

 更新時間:2022年05月24日 17:06:37   作者:??SilentLove????  
這篇文章主要介紹了如何利用JavaScript讀取excel文件并繪制echarts圖形,文章通過excel財務(wù)報表,并且需要根據(jù)這張excel表繪制成各種echarts圖形,需要了解更多詳情的小伙伴可以參考一下文章內(nèi)內(nèi)容

1、場景描述

  • 通常來說,前端要拿到excel數(shù)據(jù),都是先上傳存儲數(shù)據(jù)庫,然后再請求后端接口,獲取數(shù)據(jù)。
  • 但有100個產(chǎn)品經(jīng)理,就會有101個不同的需求。
  • 本文以自己的vue項目為例。

2、需求描述

  • 現(xiàn)有一張excel財務(wù)報表,需要根據(jù)這張excel表繪制成各種echarts圖形,用于年度匯報。
  • 不經(jīng)過后端,前端獨立完成。

3、功能實現(xiàn)

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

這里我們借助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">

添加響應(yīng)事件change獲取excel數(shù)據(jù):

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

通過updateFile接受數(shù)據(jù)

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

得到files,說明我們已經(jīng)獲取到上傳的excel文件?,F(xiàn)在我們需要將files轉(zhuǎn)化成我們熟悉的數(shù)組類型。 我們使用fileReader方法。

FileReader共有4種讀取方法:

  • 1.readAsArrayBuffer(file):將文件讀取為ArrayBuffer。
  • 2.readAsBinaryString(file):將文件讀取為二進(jìn)制字符串
  • 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" }); // 以二進(jìn)制流方式讀取得到整份excel表格對象
      let sheetName = workbook.Sheets[workbook.SheetNames[0]]; // 這里我們只讀取第一張表,獲取表名(如Sheet1)
      _this.excelData = XLSX.utils.sheet_to_json(sheetName, {
        header: "A",
        raw: true,
        defval: " " // 意思是從頭開始匹配,如遇到空格,將跳過執(zhí)行,并替換為" "字符串。
      });
      console.log(_this.excelData) // excelData在data()中聲明的變量, _this.excelData就是我們熟悉的數(shù)組數(shù)據(jù)了。
    } catch (e) {
      return _this.$message.error("文件類型不正確!");
    }
  };
  // fileReader.readAsBinaryString(files[0]); // 將文件讀取為二進(jìn)制字符串展示在頁面
}

excel多張表格的處理:

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

將得到的數(shù)據(jù)渲染在echarts中,效果如下:

4、尾言

  • 本文中主要講解excel數(shù)據(jù)獲取部分。
  • 對于將獲取的數(shù)組數(shù)據(jù)如何處理將會在后面的文章中詳細(xì)講解。

到此這篇關(guān)于如何利用JavaScript讀取excel文件并繪制echarts圖形的文章就介紹到這了,更多相關(guān)js讀取excel文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript操作Cookie的示例詳解

    JavaScript操作Cookie的示例詳解

    avaScript?提供了一些方法來操作?Cookie,包括設(shè)置、獲取、刪除?Cookie?等,本文將詳細(xì)介紹如何使用JavaScript操作Cookie,需要的可以參考下
    2024-12-12
  • axios 處理 302 狀態(tài)碼的解決方法

    axios 處理 302 狀態(tài)碼的解決方法

    這篇文章主要介紹了axios 處理 302 狀態(tài)碼的解決方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-04-04
  • JavaScript動態(tài)創(chuàng)建二維數(shù)組的方法示例

    JavaScript動態(tài)創(chuàng)建二維數(shù)組的方法示例

    這篇文章主要介紹了JavaScript動態(tài)創(chuàng)建二維數(shù)組的方法,結(jié)合實例形式分析了javascript動態(tài)創(chuàng)建二維數(shù)組的相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2019-02-02
  • 詳解JavaScript中的4種類型識別方法

    詳解JavaScript中的4種類型識別方法

    JavaScript中檢測對象類型的運(yùn)算符有:typeof、instanceof,還有對象的constructor屬性: 1) typeof 運(yùn)算符 typeof 是一元運(yùn)算符,返回結(jié)果是一個說明運(yùn)算數(shù)類型的字符串。下面由小編給大家分享JavaScript中的4種類型識別方法,需要的朋友可以參考下本文
    2015-09-09
  • layer彈出層顯示在top頂層的方法

    layer彈出層顯示在top頂層的方法

    今天小編就為大家分享一篇layer彈出層顯示在top頂層的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 對setInterval在火狐和chrome切換標(biāo)簽產(chǎn)生奇怪的效果之探索,與解決方案!

    對setInterval在火狐和chrome切換標(biāo)簽產(chǎn)生奇怪的效果之探索,與解決方案!

    其實這個問題,已經(jīng)困擾我很近。就是切換瀏覽器標(biāo)簽之后,再等幾十秒的時間切換回來setInterval就亂了陣,過一會又正常了!IE瀏覽器就沒有這種奇怪的現(xiàn)象!
    2011-10-10
  • js 如何實現(xiàn)對數(shù)據(jù)庫的增刪改查

    js 如何實現(xiàn)對數(shù)據(jù)庫的增刪改查

    JavaScript操作數(shù)據(jù)庫JS操作Access數(shù)據(jù)庫,跟其他語言操作差不多,總結(jié)了一下習(xí)慣代碼,需要的朋友可以參考下
    2012-11-11
  • 最全的Javascript編碼規(guī)范(推薦)

    最全的Javascript編碼規(guī)范(推薦)

    本文給大家總結(jié)了js編碼規(guī)范知識,非常實用,在日常程序開發(fā)中經(jīng)??梢杂玫?,大家務(wù)必掌握
    2016-06-06
  • js實現(xiàn)拖拽效果

    js實現(xiàn)拖拽效果

    本文主要是為了讓大家更好的理解js的面向?qū)ο?,通過實現(xiàn)拖拽效果向大家展示js面向?qū)ο螅浅2诲e,這里推薦給大家。
    2015-02-02
  • JavaScript伸縮的菜單簡單示例

    JavaScript伸縮的菜單簡單示例

    伸縮的菜單,想必大家都有見到過吧,實現(xiàn)方法也是很多的,在接下來的文章中為大家介紹下使用js是如何實現(xiàn)的,需要的朋友可以參考下
    2013-12-12

最新評論

会东县| 西乌珠穆沁旗| 伊吾县| 岳池县| 高碑店市| 三门县| 阜宁县| 合作市| 遵化市| 青田县| 连平县| 永吉县| 抚远县| 苍溪县| 谷城县| 盐边县| 西乡县| 民乐县| 景宁| 北京市| 榆中县| 黄陵县| 贡觉县| 柳州市| 南丹县| 沂源县| 罗田县| 南汇区| 柳林县| 武川县| 亚东县| 蓝山县| 铁岭县| 唐海县| 简阳市| 惠东县| 尚志市| 嘉黎县| 肥西县| 祥云县| 龙南县|