使用 Styleframe 将多个 pandas 数据帧保存到 Excel 文件,每个数据帧都在不同的 sheet

Saving multiple pandas dataframes to Excel file with Styleframe, each one on a different sheet

我正在尝试将多个 pandas 数据帧保存到 excel。我希望它们都在同一个 excel 文件中,但每个文件都在不同的 sheet.

这就是我目前的情况。这只是将我所有的数据帧保存到单独的文件中。我用过StyleFrame。这些数据框中的某些值具有 \n。当我写入 excel 时,我希望它在每个单元格中将其注册为一个新行。

使用 StyleFrame 是我能找到的唯一解决方案。

file_path = "path_to_save_files"
StyleFrame(df1).to_excel(file_path + '/df1.xlsx').save()
StyleFrame(df2).to_excel(file_path + '/df2.xlsx').save()
StyleFrame(df3).to_excel(file_path + '/df3.xlsx').save()

这是我试过的。这通常有效:

writer = pd.ExcelWriter(f'{file_path}/output.xlsx', engine='xlsxwriter')

StyleFrame(df1).to_excel(writer, sheet_name = "sheet1")
StyleFrame(df2).to_excel(writer, sheet_name = "sheet2")
StyleFrame(df3).to_excel(writer, sheet_name = "sheet3")

但是,因为我使用的是 StyleFrame,所以出现错误:

AttributeError: 'Worksheet' object has no attribute 'sheet_view'

有什么建议吗?

您使用 xlsxwriter 作为引擎有什么特别的原因吗? styleframe 只支持 openpyxl,所以这会起作用:

writer = pd.ExcelWriter(f'{file_path}/output.xlsx', engine='openpyxl')
df1 = pd.DataFrame({'a':[1]})
df2 = pd.DataFrame({'b':[2]})
StyleFrame(df1).to_excel(writer, sheet_name="sheet1")
StyleFrame(df2).to_excel(writer, sheet_name="sheet2")

writer.save()

请注意,您必须显式调用 writer.save()(就像直接使用 pandas.DataFrame 一样)。

pd.ExcelWriter(f'{file_path}/output.xlsx', engine='openpyxl')有快捷方式:

writer = StyleFrame.ExcelWriter(f'{file_path}/output.xlsx')