A-A+

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

2025年04月30日 09:52 学习笔记 暂无评论 共946字 (阅读586 views次)
Image

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是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"
)

布施恩德可便相知重

微信扫一扫打赏

Image

支付宝扫一扫打赏

Image
×
Image

给我留言

Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image Image