• Stars
    star
    686
  • Rank 65,892 (Top 2 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Implementation of Ag-Grid component for Streamlit

streamlit-aggrid

Open in Streamlit GitHub PyPI


Note

Folks, I wish I had more time to work on this.. But, I'm still bound to those 24 hours a day have, and vey busy days. I'm writing this on my free time, most features I'm adding are what I found necessary to implement on the projects I'm using Streamlit Ag-Grid. I check the issues here and the PR once in a while, and try to focus on what's more requested. I'm working on documentation and some examples too. Check Here

"I'm just a Latin American young man
No money in the bank no important relatives
And coming from the countryside"


AgGrid is an awesome grid for web frontend. More information in https://www.ag-grid.com/. Consider purchasing a license from Ag-Grid if you are going to use enterprise features!

Comment on discuss.streamlit.io If you like it or Buy me a beer 🍺!


Live example [on Streamlit Cloud](https://pablocfonseca-streamlit-aggrid-examples-example-jyosi3.streamlitapp.com/). Some basic documentation is available: https://streamlit-aggrid.readthedocs.io

Install

pip install streamlit-aggrid

Quick Use

Create an example.py file

from st_aggrid import AgGrid
import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/fivethirtyeight/data/master/airline-safety/airline-safety.csv')
AgGrid(df)

Run :

streamlit run example.py

Demo

Grid data is sent back to streamlit and can be reused in other components. In the example below a chart is updated on grid edition.

example image

Development Notes

Version 0.3.4

  • Added quickfilter
  • Added Excel Export Module
  • Bugfixes (an probably introduced new ones :/)
  • Code cleanup
  • Updated Ag-Grit to 29.1.0 (including ag-grid-react) which will cause direct HTML returns to stop rendering (#198). Use a cellRenderer instead.

Version 0.3.3

  • Fixes #132
  • Fixes #131 and #130
  • Added Sparklines #118
  • Changed Grid Return to support #117
  • Rebuilt streamlit theme

Version 0.3.0

  • Merged some PR (Thanks everybody!) check PR at github!
  • Added class parsing in React Side, so more advanced CellRenderers can be used. (Thanks kjakaitis)
  • Added gridOptionsBuilder.configure_first_column_as_index() to, well, style the first columns as an index (MultiIndex to come!)
  • Improved serialization performance by using simpler pandas to_json method (PR #62, #85)
  • Added option to render plain json instead of pd.dataframes
  • gridOptions may be loaded from file paths or strings
  • gridReturn is now a @dataclass with rowIndex added to selected_rows, (previous version returned only the selected data, now you can know which row was selected)
  • Changed GridReturnMode behavior. Now update_on accepts a list of gridEvents that will trigger a streamlit refresh, making it possible to subscribe to any gridEvent.
  • Removed dot-env and simplejson dependencies.
  • Other smaller fixes and typos corrections.

Version 0.2.3

  • small fixes
  • Merged PR #44 and #25 (thanks msabramo and ljnsn)
  • Merged PR #58 - allow nesting dataframes. Included an example in exampes folder.

Version 0.2.2

  • Updated frontend dependencies to latest version
  • Corrected text color for better viz when using streamlit theme (thanks jasonpmcculloch)
  • Switched default theme to Balham Light ('light'), if you want to use streamlit theme set theme='streamlit' on agGrid call

Version 0.2.0

  • Support Themes
  • Incorporated Pull Requests with fixes and pre-select rows (Thanks randomseed42 and msabramo)
  • You can use strings instead of importing GridUpdateMode and DataReturnMode enumerators
  • it works fine with st.forms!
  • new theme example in example folder

Version 0.1.9

  • Small fixes
  • Organized examples folder

Version 0.1.8

  • Fixes a bug that breaks the grid when NaN or Inf values are present in the data

Version 0.1.7

  • Fixes a bug that happened when converting data back from the grid with only one row
  • Added license_key parameter on AgGrid call.

Version 0.1.6

  • Fixes issue #3
  • Adds support for timedelta columns check example

Version 0.1.5

  • small bug fixes
  • there is an option to avoid grid re-initialization on app update (check fixed_key_example.py on examples folder or here)

Version 0.1.3

  • Fixed bug where cell was blank after edition.
  • Added enable_enterprise_modules argument to AgGrid call for enabling/disabling enterprise features
  • It is now possible to inject js functions on gridOptions. Enabling advanced customizations such as conditional formatting (check 4th column on the example)

Version 0.1.2

  • added customCurrencyFormat as column type

Version 0.1.0:

  • I worked a little bit more on making the example app functional.
  • Couple configuration options for update mode (How frontend updates streamlit) and for data returns (grid should return data filtered? Sorted?)
  • Some basic level of row selection
  • Added some docstrings specially on gridOptionsBuilder methods
  • Lacks performance for production. JS Client code is slow...