Python 使用Panda获取df.to_excel(…)之后的excel文件

Python 使用Panda获取df.to_excel(…)之后的excel文件,python,excel,pandas,firebase,writer,Python,Excel,Pandas,Firebase,Writer,我正在使用Pyrebase将文件上载到Firebase 我有一个数据框df,并将其转换为Excel文件,如下所示: writer = ExcelWriter('results.xlsx') excelFile = df.to_excel(writer,'Sheet1') print(excelFile) # Save to firebase childRef = "path/to/results.xlsx" storage = firebase.

我正在使用Pyrebase将文件上载到Firebase

我有一个数据框
df
,并将其转换为Excel文件,如下所示:

writer      = ExcelWriter('results.xlsx')
excelFile   = df.to_excel(writer,'Sheet1')

print(excelFile)

# Save to firebase
childRef        = "path/to/results.xlsx"

storage         = firebase.storage()
storage.child(childRef).put(excelFile)
但是,这会将Excel文件存储为零字节的Office电子表格。如果我运行
writer.save()
,那么我确实会得到相应的文件类型(
xlsx
),但它存储在我的服务器上(我希望避免)。如何像使用
writer.save()
那样生成正确的文件类型


注意:
print(excelFile)
根据您应该添加的文档返回
None

writer.save()

可以通过使用本地内存来解决:

# init writer
bio         = BytesIO()
writer      = pd.ExcelWriter(bio, engine='xlsxwriter')
filename    = "output.xlsx"

# sheets
dfValue.to_excel(writer, "sheetname")

# save the workbook
writer.save()
bio.seek(0)      

# get the excel file (answers my question)          
workbook    = bio.read()  
excelFile   = workbook

# save the excelfile to firebase
# see also issue: https://github.com/thisbejim/Pyrebase/issues/142
timestamp       = str(int(time.time()*1000));
childRef        = "/path/to/" + filename

storage         = firebase.storage()
storage.child(childRef).put(excelFile)
fileUrl         = storage.child(childRef).get_url(None)

是的,但它会保存在我的服务器上。我只想将Excel对象放入我的(短期)内存中,并使用它将其存储在Firebase上,而不是我的服务器上。例如,当您在Javascript中使用FileReader时,它会创建一个文件Blob。您可以输入以在外部保存。然后可以尝试
storage.child(childRef).put(writer.save())
trued吗。不工作。我也试过了。放(df),但没用。必须有一种方法来获取文件对象。我认为,因为Pyrebase是一个API包装器,所以必须具体化文件才能上载它。上传成功后,您可以将其删除。