引用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]);
}