首页 > 解决方案 > 使用 Styleframe 将多个 pandas 数据帧保存到 Excel 文件,每个数据帧在不同的工作表上

问题描述

我正在尝试将一些熊猫数据框保存到 excel 中。我希望它们都在同一个 excel 文件中,但每个文件都在不同的工作表上。

这就是我目前所拥有的。这只是将我所有的数据框保存到单独的文件中。我用过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:“工作表”对象没有属性“工作表视图”

有什么建议么?

标签: python-3.xpandasexport-to-excelstyleframe

解决方案


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')

推荐阅读