react 读取excel中的内容并解析成json格式的

引用xlsx库来完成这个功能
下载库:npm下载可能会报错,用yarn正常

npm install xlsx --save
//or
yarn add xlsx

模块导入:

import XLSX from 'xlsx';

基础代码:

 <input type="file" onChange={this.HandleImportFile} />

处理逻辑:

HandleImportFile = (e) => {
    let { files } = e.target
    // 获取文件名称
    let name = files[0].name
    // 获取文件后缀
    let suffix = name.substr(name.lastIndexOf("."));

    let reader = new FileReader();
    reader.onload = (event) => {
      try {
        // 判断文件类型是否正确
        if (".xls" != suffix && ".xlsx" != suffix) {
          message.error("选择Excel格式的文件导入!");
          return false;
        }

        let { result } = event.target
        // 读取文件
        let workbook = XLSX.read(result, { type: 'binary' });
        let data = []
        // 循环文件中的每个表
        for (let sheet in workbook.Sheets) {
          if (workbook.Sheets.hasOwnProperty(sheet)) {
            // 将获取到表中的数据转化为json格式
            data = data.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
          }
        }

        console.log(data)

      } catch (e) {
        message.error('文件类型不正确!');
      }

    }
    reader.readAsBinaryString(files[0]);
  }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章