You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python合并多份Excel的Sheet1数据并添加空行间隔

解决Excel文件合并问题

嗨,我来帮你搞定这个合并Excel的需求!咱们先看看你原来代码的问题出在哪:

  • 每次循环你都把新读取的sheet1数据直接赋值给df,这会把之前文件的数据完全覆盖,到最后df里只剩最后一个文件的内容
  • 每次循环都调用df.to_excel('Final.xlsx'),这会直接覆盖掉之前生成的文件,所以最终只有最后一个文件的数据被保存

下面是修正后的代码,能帮你把所有sheet1的数据合并,并且在不同文件的内容之间加上空行:

import pandas as pd
import glob
import os
import numpy as np

# 初始化一个空的DataFrame用来存储所有合并后的数据
combined_df = pd.DataFrame()

# 遍历当前目录下所有的.xlsx文件
for excel_file in glob.glob(os.path.join(os.getcwd(), "*.xlsx")):
    # 读取当前文件的sheet1(sheet_name=0对应第一个工作表)
    df = pd.read_excel(excel_file, sheet_name=0)
    # 将当前文件的sheet1数据追加到总数据中
    combined_df = pd.concat([combined_df, df], ignore_index=True)
    # 添加一行空行(列数和当前df一致,用NaN填充)
    empty_row = pd.DataFrame([[np.nan] * len(df.columns)], columns=df.columns)
    combined_df = pd.concat([combined_df, empty_row], ignore_index=True)

# 去掉最后一行多余的空行(因为最后一个文件后面不需要加空行)
if not combined_df.empty:
    combined_df = combined_df.iloc[:-1]

# 将合并后的数据导出到新的Excel文件
combined_df.to_excel('Final.xlsx', index=False)

代码说明:

  1. 初始化空DataFrame:combined_df用来逐步累积所有文件的sheet1数据
  2. 遍历文件并读取数据:逐个读取每个xlsx的sheet1,避免覆盖之前的数据
  3. 追加数据+添加空行:每读取一个文件的数据,就追加到总数据里,再添加一行和数据列数一致的空行
  4. 移除最后一行空行:最后一个文件后面不需要空行,所以循环结束后删掉最后一行
  5. 导出文件:index=False用来避免导出时自动添加索引列,让结果更整洁

用你给出的两个文件示例,合并后的Final.xlsx内容会和你期望的一致:

Name Age Gender State City
N1 22 M Cal ABC
N2 32 M NC Dur

N3 26 F KLM PQR
N4 23 M SC STM

内容的提问来源于stack exchange,提问作者RIshu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:10:18