最近做后台管理系统用到了这个导入Excel表格,我使用的是Ant Design这个组件库里面的upload
第一步:安装插件 xlsx
npm run xlsx
安装之后在你需要用到的页面引入
import * as XLSX from 'xlsx';
第二步:
<Upload {...uploadProps}>
<Button type="primary">导入Excel</Button>
</Upload>
const uploadProps = {
accept: '.xls,.xlsx,application/vnd.ms-excel',
beforeUpload: (file) => {
const f = file;
const reader = new FileReader();
reader.onload = (e) => {
const datas = e.target.result;
const workbook = XLSX.read(datas, {
type: 'binary',
});
const first_worksheet = workbook.Sheets[workbook.SheetNames[0]];
const jsonArr = XLSX.utils.sheet_to_json(first_worksheet, { header: 1 });
handleImpotedJson(jsonArr, file);
};
reader.readAsBinaryString(f);
return false;
},
onRemove: () => {
setWageTableData([]);
},
};
const handleImpotedJson = (jsonArr, file) => {
console.log(jsonArr, file);
//jsonArr返回的是你上传的excel表格的每一行的数据 是数组形式
jsonArr.splice(0, 1); // 去掉表头
const jsonArrData = jsonArr.map((item, index) => {
console.log(item, index);
let jsonObj = {};
//在这写你需要的处理逻辑
// jsonObj.id = data.length + index + 1;
// jsonObj.key = data.length + index + 1 + '';
// jsonObj.name = item[0];
// jsonObj.profession = item[1];
// jsonObj.pay = item[2];
// jsonObj.work = item[3];
return jsonObj;
});
console.log(jsonArrData);
// setData([...data, ...jsonArrData]);
setWageTableData(jsonArrData);
};
大功告成! 有问题可以留言评论,react导出Excel表格的话我另一篇博客有