导出数据是很多系统中都具备的功能,但看了一下其他人的写法,觉得可以更便捷一点
场景要求需要点击多选框进行选择数据,并进行导出到excel,但表格的数据并不能完全的导出到excel给用户,并且表头顺序不能乱。其中使用的插件链接如下,可以下载
https://fly.layui.com/extend/excel/#doc
引入步骤不做描述,其他教程已经很详细了
这时候点击导出,是将全部的数据都进行了导出,下面我们进行多选框控制导出数据,
在这里使用,直接获取表数据就可以,无需重新访问查询接口。
var selectData; selectData = layui.table.checkStatus('test-table').data; //利用checkStatus获取test-table中的数据 console.log(selectData);
可以通过控制台看到表格里面的全局数据
接着我们为其添加表头
selectData.unshift({ name: '姓名', sex: '性别', age:'年龄' nationId: '民族', school: '学校', });
现在已经可以进行打印了,在插件中直接使用excel.exportExcel就可以完成导出
excel.exportExcel({
sheet1: data
}, ‘文件名称.xlsx’, ‘xlsx’);
但此时导出的内容不仅仅是内容乱序的,而且有一些非必要给用户导出的内容需要做限制
var data = excel.filterExportData(selectData, [ 'name', 'sex', 'nationId', //我们将学校字段进行了屏蔽,同时对导出的内容进行排序 ]);
最后可以执行导出
excel.exportExcel({ sheet1: data }, '文件名称.xlsx', 'xlsx');