如何使用多张工作表和不同的工作表名称将 dfs 导出为 excel

Posted

技术标签:

【中文标题】如何使用多张工作表和不同的工作表名称将 dfs 导出为 excel【英文标题】:How to export dfs to excel with multiple sheets and different sheet names pandas 【发布时间】:2019-01-22 20:23:57 【问题描述】:

我正在尝试通过将 df 打印到 Excel 中的工作表并将学生 ID 作为选项卡名称来迭代学生 ID。

换句话说:

df 到 excel 和选项卡名称是 1

下一个 df 到新工作表和选项卡名称是 2

遍历所有学生 ID

final=[dataframe,dataframe,dataframe]
studentIDs=[1,2,3]


writer = pd.ExcelWriter('Name.xlsx', engine='xlsxwriter')
for df in final:
    df.to_excel(writer, sheet_name='%s' %studentIDs)
    writer.save()

【问题讨论】:

这可能会回答你的问题:***.com/questions/51792576/… @HenryWoody 这也是一个很好的实现;使用 zip() 【参考方案1】:
final=[dataframe,dataframe,dataframe] 

studentIDs=[1,2,3]


writer = pd.ExcelWriter('Name.xlsx', engine='xlsxwriter')
for i,df in enumerate(final, 0):
    df.to_excel(writer, sheet_name='%s' %studentIDs[i])
     
writer.save()

如果列表总是按顺序匹配,那么您可以使用 enumerate(它为您提供从该索引开始的列表),然后将其与上面的列表匹配,但我建议使用字典

final = 
   1 : dataframe,
   2 : dataframe,
   3 : dataframe



writer = pd.ExcelWriter('Name.xlsx', engine='xlsxwriter')
for sheet_name in final:
    final[sheet_name].to_excel(writer, sheet_name= str(sheet_name))
    
writer.save()

【讨论】:

这太完美了!我很感激帮助。我已经有了这段代码,但它不起作用,因为当我运行它时,“writer.save()”在循环中,而你在循环之外有它!谢谢!

以上是关于如何使用多张工作表和不同的工作表名称将 dfs 导出为 excel的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA - 组合宏以重命名工作表和宏以在一个宏中合并工作表

命名多张纸

获取已关闭工作簿中定义名称的路径、文件名、工作表和地址

如何将EXCEl中多张Sheet工作表转换成一个PDF

如何将EXCEl中多张Sheet工作表转换成一个PDF

如何将EXCEl中多张Sheet工作表转换成一个PDF