首页 > 解决方案 > 如何将具有多张工作表的excel合并为一个excel?

问题描述

该文件夹包含至少 20 个 Excel。每个 excel 包含九张工作表。这些 excel 具有相同类型的工作表(相同的标题但不同的数据)。我需要将这 20 个 excel 逐页合并为一个 excel。每个excel中的前两张是说明。它们是可跳过的。我怎样才能做到这一点?谢谢!

示例:文件 A 表 3、文件 B 表 3、文件 A 表 4、文件 B 表 4

文件 A 表 3 文件 B 表 3 文件 A 表 4 文件 B 表 4

所以最终组合文件将如下所示:

文件组合表3 文件组合表4

标签: pythonexcelpandasdataframexlrd

解决方案


不久前我不得不做一些类似的事情:

此代码应该为您解决问题:

import pandas as pd
import os

collection = {}
for file in os.listdir():
    if file.endswith(".xlsx"):
        mysheets = pd.ExcelFile(file)
        mysheetnames = mysheets.sheet_names
        for i in mysheetnames[2:]: #change the 2 in [2:] to change how many sheets you delete
            mydata = pd.read_excel(file, i)
            combi = collection.get(i, [])
            collection[i] = combi + [mydata]

writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')

for key in collection:
    myresult = pd.concat(collection.get(key), sort=False)
    myresult.to_excel(writer, sheet_name=key)

writer.save()

推荐阅读