如何在python

时间:2018-08-02 17:29:12

标签: 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()

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

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

1 个答案:

答案 0 :(得分:3)

您必须循环浏览工作表名称。请参见以下代码:

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