(此借鉴别人家的...........)
一.需要处理的Excel
二.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格式如下