栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

代码示例:Streamlit输出可下载xlsx文件到浏览器

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

代码示例:Streamlit输出可下载xlsx文件到浏览器

Streamlit以及业界给出的示例大多为针对csv文件的,但在实践中,数据经过处理后以xlsx文件输出的需求也不少。xlsx文件更接地气,更接近最终用户的需求。
openpyxl是我最喜爱的xlsx文件处理工具,速度快功能强大,在使用Streamlit自作网站的时候自然优先选用。
base64可理解为一种加密工具,将文件输出到前端浏览器需要使用其解码和加密。不过base64只能读取二进制文件,这也是为何下列代码中将保存在内存中的字节文件重新读取为二进制文件。
为简化篇幅,以下代码已经过极大的简化,原始代码请参考我的作品,目前已由中秋版更新至国庆版。

import streamlit as st
import openpyxl
import base64

xlsx_exporter=openpyxl.Workbook()
sheet=xlsx_exporter.active
sheet.cell(row=1,column=1).value='Thank'
sheet.cell(row=1,column=2).value='You'
sheet.cell(row=1,column=3).value='Python'
xlsx_exporter.save('results.xlsx')#注意!文件此时保存在内存中且为字节格式文件
data=open('results.xlsx','rb').read()#以只读模式读取且读取为二进制文件
b64 = base64.b64encode(data).decode('UTF-8')#解码并加密为base64
href = f'Download xlsx file'#定义下载链接,默认的下载文件名是myresults.xlsx
st.markdown(href, unsafe_allow_html=True)#输出到浏览器
xlsx_exporter.close()

写代码处理服务器上的文件和数据与在本地有些不同,这方面我还是新手,经历了不少探索与尝试,所以也特别理解新手的痛点,故而分享以为记。
也希望老手高手给与斧正。

我的相关作品

运行界面示例截图:

【发表是最好的记忆】

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/295896.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号