export const UUID = () => {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
-----
renderUUID = UUID();
----
<input key={this.state.renderUUID} type="file" accept=".xls" hidden={true} onChange={(e) => this.fileOnChange(e)} ref='importEntry' />
------
fileOnChange = (e) => {
let files = e.currentTarget.files;
new Promise((resolve, reject) => {
let reader = new FileReader();
if (!files || files.length === 0) {
reject();
}
reader.readAsBinaryString(files[0]);
reader.onload = e => {
let webBook = XLSX.read(e.target.result, { type: 'binary' });
let data = [];
for (let sheet in webBook.Sheets) {
if (webBook.Sheets.hasOwnProperty(sheet)) {
data = data.concat(XLSX.utils.sheet_to_json(webBook.Sheets[sheet], { defval: '' }));
break;
}
}
resolve(data);
};
reader.onerror = error => {
reject(error);
};
}).then((res) => {
res.shift();
let entryDetails = [];
try {
entryDetails = res
.map(item => {
return {
issueCode: Object.values(item)[0],
issueName: Object.values(item)[1],
issueNameSt: Object.values(item)[2],
key: Object.values(item)[0],
expirationDate: Object.values(item)[3],
};
})
if (entryDetails.length === 0) {
message.error('数据格式不正确或者数据为空,导入失败');
return;
}
} catch (e) {
return;
}
this.setState({
dataSource: entryDetails,
fileName: files[0].name,
})
})
}
JS导入excel,识别excel数据
最新推荐文章于 2024-10-18 17:51:23 发布