前端vue导入读取excel内容

一、安装xlsx包

npm i xlsx

二、在main.js文件中引入xlsx

import XLSX from xlsx

三、在组件中,实现功能

1.在上传文件的el-upload 组件的on-change事件绑定一个函数 ,这里我的函数叫 handle
在这里插入图片描述
2.handle函数中,实现文件的读取,并且,通过filechange函数,将读取后的数据,返回给父组件

    readFile(file) {
      //文件读取
      return new Promise((resolve) => {
        let reader = new FileReader();
        reader.readAsBinaryString(file); //以二进制的方式读取
        reader.onload = (ev) => {
          resolve(ev.target.result);
        };
      });
    },

    async handle(ev) {
      let file = ev.raw;
      if (this.lastUid == file.uid) {
        return;
      }
      this.lastUid = file.uid;
      if (file) {
        if (
          file.name.indexOf(".xls") != -1 ||
          file.name.indexOf(".xlsx") != -1
        ) {
        //这里进行了判断,只能读取这两种类型的文件。
          let data = await this.readFile(file);
          let workbook = XLSX.read(data, { type: "binary", cellDates: true }); //解析二进制格式数据
          let worksheet = workbook.Sheets[workbook.SheetNames[0]]; //获取第一个Sheet
          let result = XLSX.utils.sheet_to_json(worksheet); //json数据格式
          this.$emit("filechange", result);//将数据通过filechange函数,传递给父组件
        }
      }
    },

3.实现效果
导入的表格为
导入的图片
得到的数据格式为:
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐