如何在Streamlit中用streamlit-aggrid实现表格行条件格式化
Streamlit-AgGrid 整行条件格式化实现方案
要实现整行条件格式化,无需针对列配置cellStyle,而是通过getRowStyle配置整行样式规则,以下是修改后的可运行代码:
from st_aggrid import AgGrid, GridOptionBuilder, JsCode # 假设你的数据集为mydf gb = GridOptionBuilder.from_dataframe(mydf) # 定义整行样式的JS逻辑,根据行内数据判断样式 row_style_jscode = JsCode(""" function(params) { // 替换为你的实际判断条件,示例以"分数"列大于70为触发条件 if (params.data.分数 > 70) { return { 'color': 'white', 'backgroundColor': '#fa7e74' } } else { return { 'color': 'black', 'backgroundColor': '#cdf6df' } } }; """) # 绑定整行样式规则 gb.configure_grid_options(getRowStyle=row_style_jscode) # 如需保留列的可编辑等配置,可继续添加列配置 gb.configure_columns(mydf.columns, editable=True) gridOptions = gb.build() AgGrid(mydf, gridOptions=gridOptions, allow_unsafe_jscode=True)
关键说明
- 用
getRowStyle替代cellStyle,作用范围覆盖整行而非单个单元格 - 通过
params.data.列名获取当前行的指定列数据,以此作为条件判断依据 - 必须开启
allow_unsafe_jscode=True,否则自定义JS逻辑无法生效 - 列的额外配置(如可编辑、宽度调整)可通过
configure_columns继续设置
内容的提问来源于stack exchange,提问作者干猕猴桃
相关产品推荐
相关产品推荐

