首页 > 其他分享 >Streamlit输出可下载xlsx文件到浏览器

Streamlit输出可下载xlsx文件到浏览器

时间:2024-02-18 16:22:04浏览次数:31  
标签:xlsx exporter 浏览器 文件 base64 sheet Streamlit

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'<a href="data:file/data;base64,{b64}" download="myresults.xlsx">Download xlsx file</a>'#定义下载链接,默认的下载文件名是myresults.xlsx
st.markdown(href, unsafe_allow_html=True)#输出到浏览器
xlsx_exporter.close()

标签:xlsx,exporter,浏览器,文件,base64,sheet,Streamlit
From: https://www.cnblogs.com/wengzx/p/18019494

相关文章

  • Win10用资源管理器打开ftp站点跳转IE浏览器解决方法
    WindowsRegistryEditorVersion5.00[HKEY_CLASSES_ROOT\ftp]@="URL:FileTransferProtocol""EditFlags"=dword:00000002"ShellFolder"="{63da6ec0-2e98-11cf-8d82-444553540000}""SourceFilter"="{......
  • Windows和浏览器的命令与快捷键
    目录一、运行常用命令二、cmd常用命令(cmd的命令是运行的命令的超集)三、Windows快捷键1、Win键2、Ctrl键3、Alt键4、F键四、浏览器快捷键五、关闭Windows防火墙、安全中心和自动更新一、运行常用命令1.基本命令cmd打开命令提示符(cmd命令行控制台)control......
  • 浏览器事件循环
    根据网络课程记录的一些笔记,受益匪浅单线程是异步产生的原因事件循环是异步的实现方式浏览器运行会启动:浏览器进程网络进程渲染进程(一个标签页是一个渲染进程)某进程崩溃后,互不影响渲染进程渲染进程启动后,会开启一个渲染主线程,主线程负责执行html,css,js代码默认情况下,浏览......
  • js 基于能力检测进行浏览器分析
    虽然可能有人觉得能力检测类似于黑科技,但恰当地使用能力检测可以精准地分析运行代码的浏览器。使用能力检测而非用户代理检测的优点在于,伪造用户代理字符串很简单,而伪造能够欺骗能力检测的浏览器特性却很难。检测特性可以按照能力将浏览器归类。如果你的应用程序需要使用特定的浏......
  • js 浏览器元数据
    navigator对象暴露出一些API,可以提供浏览器和操作系统的状态信息。GeolocationAPInavigator.geolocation属性暴露了GeolocationAPI,可以让浏览器脚本感知当前设备的地理位置。这个API只在安全执行环境(通过HTTPS获取的脚本)中可用。这个API可以查询宿主系统并尽可能精确......
  • js 浏览器分析
    想要知道自己代码运行在什么浏览器上,大部分开发者会分析window.navigator.userAgent返回的字符串值。所有浏览器都会提供这个值,如果相信这些返回值并基于给定的一组浏览器检测这个字符串,最终会得到关于浏览器和操作系统的比较精确的结果。相比于能力检测,用户代理检测还是有一定......
  • 定制你的清爽Mac版Edge浏览器
    浏览器每次打开都有个烦人的提示要获取将来的microsoftedge更新,需要macos10.15或更高版本,找了很久也没有解决办法,有windows端的解决方案,有禁止更新的解决方案,就是没有Mac上如何避免这个告警的方案,于是走上Edge定制化之旅。省流直接下载下面的com.microsoft.Edge.......
  • 使用net core 6 c# 的 NPOI 包,读取excel..xlsx单元格内的图片 和悬浮的图片,并存储到指
    抄的两个前辈的代码,反正是实现了https://www.cnblogs.com/IT-Ramon/p/13100039.htmlhttps://www.cnblogs.com/zhaocici/p/16434320.html合并了两个代码的功能,反正能用他们是在web上用,我是在桌面程序上用,小改一下就可以用了点击查看代码usingICSharpCode.SharpZipLib.Zip;......
  • Github登录 2FA(Two-Factor Authentication/两因素认证) 浏览器插件-已验证
    Github登录2FA(Two-FactorAuthentication/两因素认证)浏览器插件-已验证chrome装下这个扩展身份验证器https://chromewebstore.google.com/detail/身份验证器/bhghoamapcdpbohphigoooaddinpkbai?pli=1装好以后,到登录的页面,有个二维码,用这个插件扫一下就能登录了,然后就有......
  • 浏览器版本检测
    浏览器版本检测目录浏览器版本检测一、检测浏览器的内核及相应的版本1.1通用方式1.2特有方式1.2.1谷歌(Chrome)浏览器1.2.2Edge浏览器1.2.3小智双核浏览器一、检测浏览器的内核及相应的版本1.1通用方式https://ie.icoa.cn/1.2特有方式1.2.1谷歌(Chrome)浏览器chrome:......