【发布时间】:2021-09-17 02:11:12
【问题描述】:
我的 jupyter 笔记本正在将数据框(具有样式)保存到 excel 文件中。然后我创建了一个链接来下载这个 excel 文件:
df=df.to_excel('ABC.xlsx', index=True)
filename ='ABC.xlsx'
file_link = "<a href='{href}' download='ABC.xlsx'> Download ABC.xlsx</a>"
html = HTML(file_link.format(href=filename))
dispaly(html)
但是当我点击链接-下载 ABC.xlsx 时,我得到-失败:网络错误。 相反,当我以相同的方式下载 CSV 文件 时,它工作正常
添加 csv 代码,在 csv 代码中添加了一些 base64 编码,没有这些 csv 代码也不起作用:
def func(df,title="Download csv file",filename="ABC.csv"):
csv=df.to_csv(index=True)
b64 =base64.b64encode(csv.encode())
payload=b64.decode()
html = "<a href="data:text/csv;base64,{payload}" download="{filename}" target="_blank">{title}</a>"
html = html.format(payload=payload,title=title,filename=filename)
return HTML(html)
我尝试为 excel 文件编辑此功能:
def func(df,title="Download excel file",filename="ABC.xlsx"):
xls=df.to_excel("xyz.xlsx",index=True)
b64 =base64.b64encode(xls.encode())
payload=b64.decode()
html = "<a href="data:text/xls;base64,{payload}" download="{filename}" target="_blank">{title}</a>"
html = html.format(payload=payload,title=title,filename=filename)
return HTML(html)
对于excel代码它给出错误:'NoneType'对象没有属性'encode'
【问题讨论】:
-
你也可以粘贴工作的csv方式吗?
-
我在上面添加了 csv 代码。谢谢
-
但是还是有一些区别的,比如
filename,target="_blank -
是的,我也尝试了 excel 的确切代码,只需编写 xlsx 而不是 csv。让我也给那个代码
-
我已经更正了 csv 代码,但没有编码它们都不起作用。请建议
标签: python excel pandas dataframe jupyter-notebook