@@ -468,6 +468,7 @@ def _generate_dataframe_content(self, dataframe) -> List[str]:
468468
469469 # Displays a DataFrame using AgGrid with configurable options.
470470 dataframe_content .append ("""
471+ df_index = 1
471472# Displays a DataFrame using AgGrid with configurable options.
472473grid_builder = GridOptionsBuilder.from_dataframe(df)
473474grid_builder.configure_default_column(editable=True, groupable=True)
@@ -479,13 +480,14 @@ def _generate_dataframe_content(self, dataframe) -> List[str]:
479480AgGrid(df, gridOptions=grid_options)
480481
481482# Button to download the df
482- df_csv = utils.convert_df(df )
483+ df_csv = df.to_csv(sep=',', header=True, index=False).encode('utf-8' )
483484st.download_button(
484- label=f "Download dataframe as CSV",
485- data=df ,
486- file_name=f"dataframe .csv",
485+ label="Download dataframe {df_index} as CSV",
486+ data=df_csv ,
487+ file_name="dataframe_{df_index} .csv",
487488 mime='text/csv',
488- )""" )
489+ key="download_button_{df_index}")
490+ df_index += 1""" )
489491 except Exception as e :
490492 self .report .logger .error (f"Error generating content for DataFrame: { dataframe .title } . Error: { str (e )} " )
491493 raise
@@ -724,7 +726,7 @@ def _generate_component_imports(self, component: r.Component) -> List[str]:
724726 r .PlotType .PLOTLY : ['import json' , 'import requests' ],
725727 r .PlotType .INTERACTIVE_NETWORK : ['import requests' ]
726728 },
727- 'dataframe' : ['import pandas as pd' ],
729+ 'dataframe' : ['import pandas as pd' , 'from st_aggrid import AgGrid, GridOptionsBuilder' ],
728730 'markdown' : ['import requests' ],
729731 'chatbot' : ['import time' , 'import json' , 'import requests' ]
730732 }
0 commit comments