While using streamlit aggrid with large data (~25k records), I am facing issue exporting the data after applying filters. The app is getting disconnected when I am trying to export filtered data. Also, filtering the data also takes time
This is working fine with small dataset (~5k records).
here are the version details
streamlit - 1.40.1
streamlit-aggrid - 1.0.5
python - 3.11
import streamlit as st
import pandas as pd
from datetime import datetime
from st_aggrid import AgGrid, GridOptionsBuilder, DataReturnMode, GridUpdateMode
st.set_page_config(page_title="Aggrid", page_icon="⭐", layout="wide")
@st.cache_data(show_spinner=False)
def load_data():
data = pd.read_csv('data\\companies_25k.csv', sep=';')
return data
def prepare_data(filtered_data):
return pd.DataFrame(filtered_data).to_csv(index=False).encode('utf-8')
if __name__ == "__main__":
df = load_data()
grid_builder = GridOptionsBuilder.from_dataframe(df)
grid_builder.configure_default_column(filter = True)
grid_builder.configure_pagination(enabled=True)
grid_options = grid_builder.build()
grid_response = AgGrid(data=df, gridOptions=grid_options, update_mode=GridUpdateMode.FILTERING_CHANGED, data_return_mode=DataReturnMode.FILTERED_AND_SORTED, enable_enterprise_modules=False)
if st.download_button(
label="Download as CSV",
data=prepare_data(grid_response['data']),
file_name=f'data_{datetime.now().strftime("%Y%m%d%H%M%S")}.csv',
mime='text/plain'
):
pass
PFA behavior while exporting data after applying filters