New Component: <st_table_select_cell>, a new way to select a cell from a table

streamlit-table-select-cell

Streamlit component that allows you to select|click a cell in a table and get its rowId and columnIndex.
This is very useful when you want to dig into the detail of a cell in a pivoted dataframe.

Installation instructions

pip install streamlit-table-select-cell

Usage instructions

import streamlit as st
import pandas as pd
from st_table_select_cell import st_table_select_cell

st.subheader("Example of st_table_select_cell")

# prepare an example dataframe
data = pd.DataFrame({'Dataset':['energy','traffic','syn'], 'Test':['ehistory','snapshot','aggmax'], 'PG': [3,6,9], 'TG':[2,5,7]})
st.dataframe(data)

# show table and get user selected cell
selectedCell = st_table_select_cell(data)
st.write(selectedCell)

if selectedCell:
    rowId = selectedCell['rowId']
    colIndex = selectedCell['colIndex']
    st.write(rowId, colIndex)

    # return column name of the selected cell.
    st.write(data.columns[colIndex])
    
    # return row of the selected cell as dict.
    st.write(data.iloc[int(rowId)].to_dict())
    
    # return cell content as string.
    st.write(data.iat[int(rowId), colIndex])
else:
    st.write('no select')
3 Likes

could u please post a few screenshots to get a feel of it.

1 Like

渲染好像有问题,能加个QQ细聊吗


screenshots. tested on streamlit 1.30.0.
you can also try it on https://table-select-cell.streamlit.app/

1 Like

bug fix with version 0.3.4 on streamlit 1.39.0

Thank you very much for this add-on, I find it very useful!

I’m wondering if it’s possible to change the width of the table as well as the colour of selection?

As of streamlit 1.49, you can now use st.dataframe(df, selection_mode=[‘signle_cell’])to replace this plugin.

2 Likes

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.