当前位置:首页>python>Python对同一文件夹多工作簿进行合并

Python对同一文件夹多工作簿进行合并

  • 2026-10-11 05:45:41
Python对同一文件夹多工作簿进行合并
网上的一个经典例题,同一文件夹下有多张工作簿,将这些工作簿合并为一个:
本来这种多工作簿合并的问题用VBA最方便,很多小工具可以一键合并,但是打开工作簿发现每个工作簿的列名顺序不一致,有的甚至缺列:
VBA是按表格的‘A’列对‘A’列,‘B’列对‘B’列进行合并,所以合并后数据是错乱的,除非提前手工清洗,将列名顺序改为一致。剩下解决的方案只剩下:PowerQuery和Python,PQ同样可以按列名合并,但Excel2016以下版本和WPS不支持,不适合大多数用户,而Pandas库的concat功能却能轻松解决这一问题。
第一步借助OS读取文件夹下所有的工作簿:

files = [f for f in os.listdir(folder) if f.endswith(('.xlsx', '.xls')) and f != os.path.basename(output_file)]

第二步用for循环读取所有工作簿下的数据:

for f in files:

    path = os.path.join(folder, f)

    df = pd.read_excel(path, sheet_name=0)

   ..........

    dfs.append(df)

第三步对相同的列进行合并并写入输出文件:

merged = pd.concat(dfs, ignore_index=True)#对数据进行合并

merged.to_excel(output_file, index=False)#合并数据写入输出文件

完整的代码如下:

看下执行过程:

已关注
关注
重播 分享 赞

所有工作簿按相同列名进行了完整的合并,跳过了缺列的那些数据,并且增加合并表索引,方便溯源。因Pandas强大数据处理能力,即使同一文件夹下有上千个工作簿也能轻松处理。

最新文章

随机文章