You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Streamlit应用中添加可供下载的Excel/CSV示例文件?

在Streamlit应用中添加可下载的示例文件

要给Streamlit应用加用户可下载的格式示例文件,用官方的st.download_button组件就能轻松实现,分两步走:

1. 准备示例文件

把你的示例文件(比如example.csv、template.xlsx这类格式模板)放在Streamlit脚本的同一目录下,或者记好文件的绝对路径,方便后续读取。

2. 实现下载功能

直接用st.download_button组件,核心是读取文件内容、设置正确的文件名和MIME类型,下面是实用代码示例:

示例1:下载静态本地文件(如提前准备好的CSV)

import streamlit as st

st.header("格式示例下载区")

# 读取本地CSV示例文件
with open("example.csv", "rb") as file:
    csv_content = file.read()

# 创建下载按钮
st.download_button(
    label="👉 下载CSV格式示例",
    data=csv_content,
    file_name="sample_format.csv",
    mime="text/csv"
)

示例2:动态生成并下载示例文件(如Excel模板)

如果需要动态生成示例(比如基于预设结构生成DataFrame),可以直接生成后导出为文件流:

import streamlit as st
import pandas as pd

# 生成示例DataFrame
sample_df = pd.DataFrame({
    "姓名": ["张三", "李四"],
    "年龄": [25, 30],
    "部门": ["技术部", "市场部"]
})

# 将DataFrame转为Excel流
excel_buffer = pd.io.common.BytesIO()
sample_df.to_excel(excel_buffer, index=False, engine="openpyxl")
excel_buffer.seek(0)

# 创建Excel下载按钮
st.download_button(
    label="👉 下载Excel格式模板",
    data=excel_buffer,
    file_name="employee_template.xlsx",
    mime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
)

关键参数说明

  • data:可以是本地文件读取的二进制内容,也可以是动态生成的文件流(如上面的Excel缓冲流)
  • file_name:用户下载时看到的默认文件名,建议明确标注格式
  • mime:对应文件的MIME类型,确保浏览器正确识别文件,常见类型参考:
    • CSV: text/csv
    • Excel(xlsx): application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    • JSON: application/json
    • 纯文本: text/plain

内容的提问来源于stack exchange,提问作者Kas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 16:45:30