使用Pandas按指定顺序写入Excel表格

问题描述 投票:0回答:3

在 Pandas

.to_excel
文档的末尾,它展示了如何按顺序编写表格:

>>> writer = pd.ExcelWriter('output.xlsx')
>>> df1.to_excel(writer,'Sheet1')
>>> df2.to_excel(writer,'Sheet2')
>>> writer.save()

有没有办法让我在我的Python程序中先写入

sheet2
,然后写入
sheet1
。但是,我仍然需要
sheet1
出现在最终 excel 文件中的 before
sheet2

python pandas export-to-excel
3个回答
4
投票

正如jmcnamara所写,由于Excel的内部结构,不建议更改工作表的顺序,但您可以使用

activate()
更改打开Excel文件时哪个工作表处于活动状态:

>>> writer = pd.ExcelWriter('output.xlsx')
>>> df1.to_excel(writer,'Sheet1')
>>> df2.to_excel(writer,'Summary')
>>> writer.sheets['Summary'].activate()
>>> writer.save()

当您打开 Excel 文件时,将显示名为“Summary”的工作表,尽管“Sheet1”仍将是第一个工作表。


0
投票

写一张空纸,然后在计算出你的总结作品后在同一张纸上重写:

writer = pd.ExcelWriter(filepath)
stats = []
pd.DataFrame.from_dict([],orient='columns').to_excel(writer, sheet_name="Stats", index=None, index_label=None)
for page in pages:
    # calculate and fill in stats
    # append my page data in it's own sheet
pd.DataFrame.from_dict(stats,orient='columns').to_excel(writer, sheet_name="Stats", index=None, index_label=None)

结果: Generated Sheet Order

我在 python 3.10.12 上使用 pandas 2.2.1,并以 openpyxl 3.1.2 作为引擎。


-1
投票

创建一个字典,将工作表保存为值,将工作表名称保存为键。然后通过按所需顺序创建键列表来选择写入表格的顺序。

writer = pd.ExcelWriter('output.xlsx')
sheet_dict = {}
sheet_dict.update({'Sheet1': df1})
sheet_dict.update({'Summary': df2})
for key in ['Summary', 'Sheet1']:
   sheet_dict[key].to_excel(writer, key)
writer.save()
© www.soinside.com 2019 - 2024. All rights reserved.