导入上传excel后,如果是多个sheet,需要支持选择导入哪个sheet

(此借鉴别人家的...........)


一.需要处理的Excel

导入上传excel后,如果是多个sheet,需要支持选择导入哪个sheet  
二.React代码实现

import React from 'react';
import XLSX from 'xlsx';
class Guide extends React.Component {
    constructor(props) {
        super(props);
    }
// 导入xlsx
importExcel=(file)=> {
    // 获取上传的文件对象
    const { files } = file.target;
    // 通过FileReader对象读取文件
    const fileReader = new FileReader();
  
    fileReader.onload = event => {
      try {
        const { result } = event.target;

        //以二进制流方式读取得到整份excel表格对象
        const workbook = XLSX.read(result, { type: 'binary' });
        console.log(workbook,'workbook')
        let data = []; //存储获取到的数据
        // 遍历每张工作表进行读取(这里默认只读取第一张表)
        for (const sheet in workbook.Sheets) {

          if (workbook.Sheets.hasOwnProperty(sheet)) {
            // 利用 sheet_to_json 方法将 excel 转成 json 数据
            data = data.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
            // break; // 如果只取第一张表,就取消注释这行
          }
        }
        console.log(data);
      } catch (e) {
        // 抛出文件类型错误不正确的相关提示
        console.log('文件类型不正确');
        return;
      }
    };
    // 以二进制方式打开文件
    fileReader.readAsBinaryString(files[0]);
  
  };
    render = () => {
        return (
           <div className="logon-guide">
            <input type='file' accept='.xlsx, .xls' onChange={(e) => {this.importExcel(e)}} />
           </div>
        )
    }
}

export default Guide;

三.返回json格式如下

导入上传excel后,如果是多个sheet,需要支持选择导入哪个sheet

 

上一篇:Excel操作之写操作---基于xlsxwriter模块


下一篇:python操作拷贝excel到另外一个excel中