首先 第一件事先下载插件
npm install js-export-excel
第二件事 在你想要导出数据的组件中引入插件
import ExportJsonExcel from 'js-export-excel';
官方推荐使用的是json数据格式 然后我这边也写了一下试了试
- 这里拿出其中的一组数据展示 ,这是一个json数据结构
- 在这一组数据中可以看到他是一个多层结构的数据
- 也就是说你在遍历一层数据的时候也要想到怎么处理第二层数据
- 我的处理方法简单粗暴
const data = [
{
id: '75546',
courseTitle: '20210818',
classNumber: '3',
status: '开启',
SellingTime: [
{startTime:'2021-7-20'},
{endTime:'2021-7-25'},
],
creator: '看小旭暗示法',
creatorTime: '2021-7-20',
tags: [
{ "bian": "编辑" },
{ "guan": "关闭" },
{ "shan": "删除" },
{ "kaii": "开启" },
]
}
]
这是将数据渲染到页面的效果 使用的是antd ui库
展示实现导出的代码 , 不要看着有点多,其实很少,就是写的有点麻烦
- 首先是点击事件代码展示
<Button onClick={handleExport} type="primary" className='btn3' icon="download">导出订单</Button>
- 然后是点击之后,如何将数据导出到Excel
function handleExport(){
let option = {}
let datatable = [];
if(data){
data.forEach(item => {
let kaii = [];
let bian = [];
let shan = [];
let guan = [];
let startTime = [];
let endTime = [];
item.SellingTime.map(items=>{
startTime.push(items.startTime);
endTime.push(items.endTime)
})
item.tags.map(items=>{
kaii.push(items.kaii);
bian.push(items.bian);
shan.push(items.shan);
guan.push(items.guan)
})
let kai = String(kaii.filter(kai=>kai == '开启'))
let bia = String(bian.filter(bia=>bia == '编辑'))
let sha = String(shan.filter(sha=>sha == '删除'))
let gua = String(guan.filter(gua=>gua == '关闭'))
let str = String(startTime.filter(start=>!start == ''))
let end = String(endTime.filter(end=>!end == ''))
let obj = {
id:item.id,
courseTitle:item.courseTitle,
classNumber: item.classNumber,
status: item.status,
startTime: str,
endTime: end,
creator: item.creator,
creatorTime: item.creatorTime,
kaii: kai,
bian: bia,
shan: sha,
guan: gua,
}
datatable.push(obj);
});
}
option.fileName = '班期数据统计'
option.datas = [
{
sheetData:datatable,
sheetName:'sheet',
sheetHeader:['班级ID','班期名称','班级数','状态','可售卖开始时间','可售卖结束时间','创建人','创建时间','编辑','开启','关闭','删除'],
sheetFilter:['id','courseTitle','classNumber','status','startTime','endTime','creator','creatorTime','bian','kaii','guan','shan'],
columnWidths: [5,5,5,5,10,10,5,5,5,5,5,5],
}
]
let toExcel = new ExportJsonExcel(option)
toExcel.saveExcel();
};
这个前端写导出,在项目中是不推荐的,这个导出正常都是由后端的同志们写的。
前端写这个导出只会导出第一页的数据,所以当个练习就行。