中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

怎么實現在Vue中導入Excel文件

發布時間:2022-01-25 09:05:17 來源:億速云 閱讀:271 作者:小新 欄目:開發技術

這篇文章主要介紹了怎么實現在Vue中導入Excel文件,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

以將此Excel導出為json數據為例

怎么實現在Vue中導入Excel文件

一、安裝依賴

npm install file-saver --save
npm install xlsx --save
npm install script-loader --save-dev

二、template中

<span>導入表格</span>
<input id="upload" type="file" @change="importfxx()"  accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />

三、script中js代碼

methods:{
   // 處理導入Excel中日期問題
    formatDate(numb, format) {
      const time = new Date((numb - 1) * 24 * 3600000 + 1);
      time.setYear(time.getFullYear() - 70);
      const year = time.getFullYear() + "";
      const month = time.getMonth() + 1 + "";
      const date = time.getDate() - 1 + "";
      if (format && format.length === 1) {
        return year + format + month + format + date;
      }
      return (
        year +
        (month < 10 ? "0" + month : month) +
        (date < 10 ? "0" + date : date)
      );
    },

    // 導入Excel
    importfxx() {
      let _this = this;
      let f = event.currentTarget.files[0];
      let rABS = false; //是否將文件讀取為二進制字符串

      let reader = new FileReader();
      //if (!FileReader.prototype.readAsBinaryString) {
      FileReader.prototype.readAsBinaryString = function (f) {
        let binary = "";
        let rABS = false; //是否將文件讀取為二進制字符串
        let wb; //讀取完成的數據
        let outdata;
        let reader = new FileReader();
        reader.onload = function (e) {
          let bytes = new Uint8Array(reader.result);
          let length = bytes.byteLength;
          for (let i = 0; i < length; i++) {
            binary += String.fromCharCode(bytes[i]);
          }
          let XLSX = require("xlsx");
          if (rABS) {
            wb = XLSX.read(btoa(fixdata(binary)), {
              //手動轉化
              type: "base64",
            });
          } else {
            wb = XLSX.read(binary, {
              type: "binary",
            });
          }
          outdata = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]); //outdata就是你想要的東西

          const keyObj = {
            序號: "id",
            情況跟蹤: "track",
            日期: "date",
            標題: "title",
            狀態: "status",
            結果: "result",
            預警: "warning",
          };

          outdata.forEach((item) => {
            // 將中文的鍵名替換成英文的
            for (let k in keyObj) {
              let newKey = keyObj[k];
              if (newKey) {
                item[newKey] = item[k];
                delete item[k];
              }
            }
            item["date"] = _this.formatDate(item["date"], "-");
          });
          console.log(outdata);
        };
        reader.readAsArrayBuffer(f);
      };
      if (rABS) {
        reader.readAsArrayBuffer(f);
      } else {
        reader.readAsBinaryString(f);
      }
    },
}

如上操作之后,打印結果是如下

怎么實現在Vue中導入Excel文件

感謝你能夠認真閱讀完這篇文章,希望小編分享的“怎么實現在Vue中導入Excel文件”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

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

AI

方山县| 庆阳市| 龙山县| 化德县| 罗田县| 榆中县| 祥云县| 黄大仙区| 鞍山市| 阳原县| 板桥市| 三江| 桃江县| 孝义市| 应城市| 涿州市| 海南省| 四平市| 凤城市| 易门县| 彩票| 浦城县| 合阳县| 凤山市| 深圳市| 宜川县| 阜平县| 宁安市| 滕州市| 贵港市| 普安县| 盐亭县| 万山特区| 阿瓦提县| 油尖旺区| 凤翔县| 昭平县| 广丰县| 巢湖市| 屏边| 鲁山县|