A-A+
文件夹内所有excel文件合并到一起

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】
import pandas as pd
from pathlib import Path
def merge_excels(folder_path, merge_mode='vertical', remove_duplicates=False, output_name="merged.xlsx"):
all_files = [f for f in Path(folder_path).glob('*.xlsx') if not f.name.startswith('~$')]
if merge_mode == 'vertical':
# 读取所有文件的第一列(包含首行)
merged_series = pd.concat(
[pd.read_excel(f, header=None).iloc[:, 0] for f in all_files],
ignore_index=True
)
if remove_duplicates:
merged_series = merged_series.drop_duplicates()
merged_df = pd.DataFrame({"Data": merged_series})
elif merge_mode == 'horizontal':
# 横向合并(保持原始行数据对齐)
dfs = [pd.read_excel(f, header=None).reset_index(drop=True) for f in all_files]
merged_df = pd.concat(dfs, axis=1)
if remove_duplicates:
merged_df = merged_df.T.drop_duplicates().T
merged_df.to_excel(output_name, index=False, header=False) # 不生成列名
print(f"合并完成!生成文件:{output_name}")
# 使用示例
merge_excels(
folder_path="D:\xxxxxxxx",
merge_mode='vertical', # 关键参数选择 vertical待办垂直 horizontal横向
remove_duplicates=True,
output_name="D:\\xxxxxxxxxx\\2025stacked_result.xlsx"
)
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏