帮我写一个streamlit上传excel,csv文件的代码,并写出相应下载代码
时间: 2023-04-07 16:01:10 浏览: 429
代码所需csv文件和excel文件
好的,以下是代码:
```python
import streamlit as st
import pandas as pd
# 上传文件
uploaded_file = st.file_uploader("上传文件", type=['xlsx', 'csv'])
# 如果有文件上传
if uploaded_file is not None:
# 读取文件
df = pd.read_excel(uploaded_file) if uploaded_file.name.endswith('xlsx') else pd.read_csv(uploaded_file)
# 显示数据
st.write(df)
# 下载文件
if st.button('下载文件'):
tmp_download_link = download_link(df, uploaded_file.name)
st.markdown(tmp_download_link, unsafe_allow_html=True)
# 下载链接函数
def download_link(df, filename):
csv = df.to_csv(index=False)
b64 = base64.b64encode(csv.encode()).decode()
href = f'<a href="data:file/csv;base64,{b64}" download="{filename}">下载文件</a>'
return href
```
这段代码可以让用户上传 Excel 或 CSV 文件,并在页面上显示数据。如果用户点击“下载文件”按钮,则会下载原始文件。
注意:需要在文件开头导入 `base64` 模块。
阅读全文