Python合并Excel文档
有若干个Excel文档,每个文档格式一致,及第一行为文件标题,第二行为表格表头(表头不完全一致)。现需要将他们合并。
合并规则为:去掉每个文档的第一行,以第二行为表头,将每个文档的第三行及以后的内容合并到一个Excel sheet中,并在第一列添加文档名称。
步骤:
1.将需要合并的数据放进同一个文件夹中(例如:DL-25102-raw data)。
2.使用以下代码运行,将路径改为上面建立的文件夹路径;生成与文件夹同名的Excel合并文件
import pandas as pd import glob import os # 配置路径 input_folder = r"D:\02数据处理\project-26001\project-26001-raw data" output_file = r"D:\02数据处理\project-26001\project-26001-raw data.xlsx" # 获取输入文件夹下所有 .xls 和 .xlsx 文件 file_list = glob.glob(os.path.join(input_folder, "*.xls")) + \ glob.glob(os.path.join(input_folder, "*.xlsx")) if not file_list: print(f"错误:在 {input_folder} 中没有找到任何 Excel 文件,请检查路径。") exit(1) dataframes = [] for file in file_list: df = pd.read_excel(file, header=1) df['Source_File'] = os.path.basename(file) dataframes.append(df) print(f"已读取:{os.path.basename(file)},共 {len(df)} 行") # 合并所有数据 merged_df = pd.concat(dataframes, ignore_index=True, sort=False) # 将 'Source_File' 列移动到第一列 cols = ['Source_File'] + [col for col in merged_df.columns if col != 'Source_File'] merged_df = merged_df[cols] # 输出到目标文件 merged_df.to_excel(output_file, index=False) print(f"合并完成!总行数:{len(merged_df)},已保存至:{output_file}")