You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在HoloViz Panel的Tabulator组件中配置表头过滤器?

实现方法

Panel封装的Tabulator组件支持直接透传底层Tabulator库的原生配置,无需额外插件即可实现表头过滤器功能,具体操作如下:

核心配置说明

直接通过Tabulator组件的configuration参数传递表头过滤的相关配置即可,你可以针对不同列指定不同的过滤器类型。

完整代码示例

import pandas as pd
import panel as pn

# 初始化Tabulator扩展
pn.extension('tabulator')

# 示例数据
sample_df = pd.DataFrame({
    '姓名': ['张三', '李四', '王五', '赵六', '孙七'],
    '年龄': [25, 30, 28, 35, 26],
    '部门': ['技术', '产品', '运营', '技术', '产品'],
    '入职日期': ['2021-01-15', '2020-05-20', '2022-03-10', '2019-09-01', '2021-11-05']
})

# 生成带表头过滤的列配置
tabulator_columns = [
    {'title': '姓名', 'field': '姓名', 'headerFilter': 'input'},
    {'title': '年龄', 'field': '年龄', 'headerFilter': 'number'},
    {'title': '部门', 'field': '部门', 'headerFilter': 'select', 'headerFilterParams': {'values': ['技术', '产品', '运营']}},
    {'title': '入职日期', 'field': '入职日期', 'headerFilter': 'input'}
]

# 初始化Tabulator组件
table = pn.widgets.Tabulator(
    sample_df,
    configuration={
        'columns': tabulator_columns
    }
)

# 启动应用
table.servable()

补充说明

  • 支持的过滤器类型包含文本输入、数字输入、下拉选择、日期选择等,可根据字段类型灵活选择
  • 如果需要给所有列统一添加相同类型的过滤器,可以批量生成列配置,无需逐个定义:
# 批量给所有列添加文本过滤
tabulator_columns = [{'title': col, 'field': col, 'headerFilter': 'input'} for col in sample_df.columns]
  • 也可通过headerFilterFunc参数配置自定义过滤规则,实现更复杂的筛选逻辑

内容的提问来源于stack exchange,提问作者urig

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:36:03