首页 > 解决方案 > 如何使用Python动态将多个excel文件合并为一个包含多个工作表的文件

问题描述

到目前为止,我是手动完成的:

df1 = pd.read_excel('/Users/user/Downloads/1.xlsx')
df2 = pd.read_excel('/Users/user/Downloads/2.xlsx')
df3 = pd.read_excel('/Users/user/Downloads/3.xlsx')
with ExcelWriter('excels.xlsx') as writer:
    df1.to_excel(writer, sheet_name='1')
    df2.to_excel(writer, sheet_name='2')
    df3.to_excel(writer, sheet_name='3')

但最终我想做到这一点,这样我就可以自动从文件夹中提取文件并将它们变成工作表。到目前为止,我有:

excel_names = ["1.xlsx", "2.xlsx", "3.xlsx"]
excels = [pd.ExcelFile(name) for name in excel_names]

但我不知道如何将它们保存为多张纸。

标签: pythonpandasjupyter-notebook

解决方案


您可以使用:

import os
import pandas as pd

folder=r'C:\path_to\your_folder'
path=os.path.join(folder,'excels.xlsx')
writer = pd.ExcelWriter(path, engine='openpyxl')
for i in os.listdir(folder):
    pd.read_excel(os.path.join(folder,i)).to_excel(writer, i[:-5], index=False)
    writer.save()

这给出了一个在同一文件夹中命名的文件excels.xlsx,该文件夹将所有文件作为工作表名放在一个文件中。


推荐阅读