Streamlit - 如何让用户从应用程序下载 Excel 文件?

Streamlit - How to let users download an Excel file from the app?

我希望用户能够通过单击按钮下载 Excel 文件。我有一个现有的 Excel 文件,尽管它也可以从数据帧生成,但我希望以 Excel 格式提供。

文档给出了 .csv 文件的示例:

with open('my_file.csv') as f:
    st.download_button('Download', f)

但我无法将此用例改编为 Excel 文件。我无法将 excel 文件放入正确的格式,以便 download_button 方法接受它。我尝试传递 pd.to_excel() 对象,但它也没有用。

我将不胜感激任何建议!

找到解决方案:

with open(file_path, 'rb') as my_file:
    st.download_button(label = 'Download', data = my_file, file_name = 'filename.xlsx', mime = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')