I am export dataframe as excel file by clicking st.button(“Export”). For that I need to upload a excel file and process it another function, in return I am receiving two dataframe from that function. After receiving I am displaying it with st.table().
Yeah It displays the Dataframe correctly. But when the export button is clicked. It makes the received dataframe to empty dataframe.
Kindly help me resolve this issue.
Below are my code, which creates above scene:
st.header("Happy Cow")
selected_tab = option_menu(
menu_title = None,
options=["A", "B","C","D"],
default_index=0,
orientation="horizontal"
)
if selected_tab == "A":
own_payment_excel = pd.DataFrame()
neft_payment_excel = pd.DataFrame()
with st.form("A_forml"):
uploaded_file = st.file_uploader("Upload a File (Excel):")
col1, col2, col3, col4, col5 = st.columns(5)
with col1:
company = st.selectbox("Select a company", ["Company A", "Company B"])
with col5:
st.write("")
st.write("")
generatebtn = st.form_submit_button("Generate Excel")
if generatebtn:
payment_excel_A, payment_excel_B = payment_excel_gen(company, uploaded_file)
# Export to Excel file
exportbtn = st.button("Export", key="export_button")
if exportbtn:
payment_excel_A.to_excel("payment_excel_A.xlsx", index=False)
st.success("payment_excel_A exported to Excel successfully!")
else:
st.warning("payment_excel_A is empty. No data to export.")
tab1, tab2 = st.tabs([company + " Payment Excel", company + " Payment Excel - Others"])
with tab1:
if not own_payment_excel.empty:
st.header("Company A ")
st.table(payment_excel_A)
st.write("")
with tab2:
if not neft_payment_excel.empty:
st.header("Company B")
data = payment_excel_B.to_dict(orient='records')
st.table(data)
st.write("")
When dataframes are recieved it displays it in their respective tabs. when export button is clicked it empties it.
Kindly guide me to resolve it. Thanks in advance