Layui中联动多选框导出Excel数据:
导出数据是很多系统中都具备的功能,但看了一下其他人的写法,觉得可以更便捷一点
问题描述:
场景要求需要点击多选框进行选择数据,并进行导出到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');