如何在Python中将不同的Excel文件合并到一个具有不同工作表名称的工作簿中

Sam*_*Sam 2 python excel python-3.x pandas

我有两个Excel工作簿。

一个带有3张纸,另一个只有一张。我正在尝试将这两部分合并为一本工作簿。该工作簿应有4张纸。

from pandas import ExcelWriter

writer = ExcelWriter("Sample.xlsx")

for filename in glob.glob("*.xlsx"):
    df_excel = pd.read_excel(filename)

    (_, f_name) = os.path.split(filename)
    (f_short_name, _) = os.path.splitext(f_name)

    df_excel.to_excel(writer, f_short_name, index=False)

writer.save()
Run Code Online (Sandbox Code Playgroud)

这样做给了我一个工作簿,但是只有两页。第一工作簿的第一页和第二工作簿的第二页。

如何在一个工作簿中获取所有4张纸?

Ven*_*ogu 5

您必须遍历工作表名称。请参见以下代码:

from pandas import ExcelWriter
import glob
import os
import pandas as pd

writer = ExcelWriter("output.xlsx")

for filename in glob.glob("*.xlsx"):
    excel_file = pd.ExcelFile(filename)
    (_, f_name) = os.path.split(filename)
    (f_short_name, _) = os.path.splitext(f_name)
    for sheet_name in excel_file.sheet_names:
        df_excel = pd.read_excel(filename, sheet_name=sheet_name)
        df_excel.to_excel(writer, f_short_name+'_'+sheet_name, index=False)

writer.save()
Run Code Online (Sandbox Code Playgroud)