数据过滤
VTable-Sheet提供强大的数据过滤功能,帮助用户快速找到所需数据。过滤功能支持多种过滤模式,包括按值过滤和按条件过滤。
过滤器功能的实现依赖于VTable的插件filter-plugin,在vtable-sheet中默认引入了该插件,该插件的教程请参考:filter-plugin。
如果想要修改插件的配置,请结合vtablePluginModules配置项来修改,具体请参考:vtablePluginModules。
开启过滤功能
全局开启
可以在工作表sheet配置中启用过滤功能:
const sheetInstance = new VTableSheet(document.getElementById('container'), {
sheets: [
{
sheetKey: 'sheet1',
sheetTitle: '数据表',
filter: true, // 为整个表格页启用过滤功能
// ...其他配置
}
]
});
针对特定列开启
也可以只为特定列启用过滤功能:
const sheetInstance = new VTableSheet(document.getElementById('container'), {
sheets: [
{
sheetKey: 'sheet1',
sheetTitle: '数据表',
columns: [
{ title: '姓名', filter: true }, // 只为姓名列启用过滤
{ title: '年龄' }, // 不启用过滤
{ title: '部门', filter: true } // 只为部门列启用过滤
],
// ... 其他配置
}
]
});
自定义过滤模式
默认过滤器面板中会同时支持按值过滤和按条件过滤。
可以指定支持的过滤模式:
const sheetInstance = new VTableSheet(document.getElementById('container'), {
sheets: [
{
sheetKey: 'sheet1',
sheetTitle: '数据表',
// 只启用条件过滤模式
filter: { filterModes: ['byCondition'] },
// ...其他配置
}
]
});
支持的过滤模式有:
'byValue':基于值列表的过滤'byCondition':基于条件的过滤
使用过滤功能
启用过滤功能后,表头单元格会显示过滤图标。点击图标将打开过滤菜单,用户可以选择过滤方式。
值列表过滤
值列表过滤显示列中的所有唯一值,用户可以通过勾选值来筛选数据:

条件过滤
条件过滤允许用户设置更复杂的过滤条件,如"大于"、"包含"等:

过滤事件监听
TODO 可以监听过滤状态变化:
// 监听过滤器变化事件
sheetInstance.on('filterChange', (evt) => {
console.log('过滤器变化:', evt);
console.log('过滤列:', evt.columnKey);
console.log('过滤条件:', evt.filter);
});
// 监听过滤器重置事件
sheetInstance.on('filterReset', () => {
console.log('所有过滤器已重置');
});
完整过滤示例
以下是一个完整的数据过滤示例:
通过这些过滤功能,用户可以快速筛选出所需数据,提高数据分析和处理的效率。