先安装 xlsx

npm i xlsx --save

然后再文件引入

import XLSX from “xlsx”;

然后封装一个读取xlsx的函数 你可以放到你常用的utils.js文件里面 或者就写在当前vue文件都可以

function readXLSX(file) {
  let nameSplit = file.name.split(".");
  let format = nameSplit[nameSplit.length - 1];
  if (!["xlsx", "csv"].includes(format)) {
    return false;
  }
  return new Promise((resolve, reject) => {
    let reader = new FileReader();
    reader.readAsBinaryString(file);
    reader.onload = evt => {
      let data = evt.target.result; // 读到的数据
      let workbook = XLSX.read(data, { type: "binary" });
      resolve(workbook);
    };
  });
}

先上个vue上传文件的组件代码

 <el-upload
              class="avatar-uploader"
              action="https://jsonplaceholder.typicode.com/posts/"
              :show-file-list="false"
              :before-upload="beforeUpload"
            ></el-upload>

触发下面函数

  async beforeUpload(file) {
      let result = await readXLSX(file);  //读取到的内容
      console.log(result)  //此处为xlsx文件内容 
  }

有什么不懂的可以留言

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐