streamlit学习笔记七-----与AG Grid的结合

以前把数据读出来并展示,可用st.table()st.dataframe() 来展示,但是如果想在表格上来点花活,比如直接编辑,排序,查找之类的,还要写额外的代码。好在,streamlit的作者引入了AG Grid。AG Grid是一个功能齐全且高度可定制的JavaScript数据网格。它提供了出色的性能,不需要第三方依赖,并且可以与所有主要的JavaScript框架流畅地集成

1 安装
1
$ pip install streamlit-aggrid
2. 例子
1
2
3
4
5
from st_aggrid import AgGrid
import pandas as pd

df = pd.read_csv('产品列.csv')
AgGrid(df) # 只展示表格

执行 $ streamlit run example.py,就可看到表格了,这里只把excel数据读出来,做了展示,如果想进行编辑的话,则改动一下。

1
2
3
4
5
from st_aggrid import AgGrid
import pandas as pd

df = pd.read_csv('产品列.csv')
new_df = AgGrid(df,editable=True) # 可编辑,并把编辑后的值存入new_dr中

编辑可指示只编辑其中一列,一个单元等,需要设置

3 一些参数

AgGrid(datafram-格式数据,

gridOption—–操作说明,格式为字典格式

height=整数—–高度,默认为400

width=整数——宽度,2.0版己取消宽度设置

fit_columns_on_grid_load—–网格宽度的列宽自适应。默认为False。

update_mode—-定义了网格如何装结果发回给streamlit,必须是一个字符串。一个或以下的组合

data_return_mode—-定义如何从客户组件检索数据

    DataReturnMode.AS_INPUT–>返回输入的网格数据

    DataReturnMode.FILTERED—>返回过滤后的网格数据,包括单元版本

    DataReturnMode.FILTERED_AND_SORTED—>返回过滤和排序的网格数据

allow_unsafe_jscode—-允许在gridOptions中注入javascropt 代码,默认不行

enable_enterprise_modules—加载Ag-Grid企业模块,默认不加载

license_key—-企业模块的许可证密钥,默认无

try_to_convert_back_to_original_types—-尝试转换原始数据类型,默认为真

reload_data—-强制AgGrid使用api调用重新加载的数据,默认为不

theme—Ag-Grid的主题,    streamit—->默认streamlit主题    light——>ag-grid的balham-light主题,    dark—->ag-grid的balham-黑色主题,  blue, fresh, material,缺省为light主题

)

4. 更多编辑示例,请见 更多例子