使用 tkinter asksaveasfilename,如何将数据帧字典保存到新 excel 文件中的单独工作表中?

Using tkinter asksaveasfilename, how to save dictionary of dataframes into seperate sheets in a new excel file?

现在我正在使用以下命令将数据帧字典保存到新 excel 文件中的单独工作表中:

# create dummy dataframe
data = [['A', 1], ['B', 2]]
df = pd.DataFrame(data, columns=['ColA', 'ColB'])
dict_df = {'df1': df, 'df2': df}

# save dict of df into excel
writer = ExcelWriter('filetosave.xlsx')
for key in dict_df:
    dict_df[key].to_excel(writer, key, index=False)
writer.save()

代码工作正常,但我正在尝试将 tkinter 合并到我的代码中,因此当我的脚本运行时,文件资源管理器将打开供我命名和保存文件。但是,下面的代码给我一个错误。

from tkinter.filedialog import asksaveasfilename 
file = asksaveasfilename(defaultextension=".xlsx")
dict_df.to_excel(file)

AttributeError: 'dict' object has no attribute 'to_excel'

您需要创建 writer 实例并遍历 dict_df 中的项目,就像在第一个代码块中一样:

from tkinter.filedialog import asksaveasfilename
from pandas import ExcelWriter

...

file = asksaveasfilename(defaultextension='.xlsx')
writer = ExcelWriter(file)
for key, df in dict_df.items():
    df.to_excel(writer, key, index=False)
writer.save()