首先安装安装xlsx插件
yarn add xlsx
使用xlsx解析
/**
* 上传文件并解析成json
*/
const HandleImportFile = (info) => {
let files = info.file;
// 获取文件名称
let name = files.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:', data);
} catch (e) {
message.error('文件类型不正确!');
}
}
reader.readAsBinaryString(files);
setIsLoading(false);
}
使用antd的Upload组件上传文件
<Upload
accept=".xls , .xlsx"
maxCount={1}
showUploadList={false}
customRequest={HandleImportFile}
>
<Button icon={<UploadOutlined />} type="primary">上传文件</Button>
</Upload>