不同excel的sheet页追加合并

该程序演示如何使用Python的pandas库合并具有相同表头的多个Excel文件的sheet页面。它首先读取目标和源Excel文件,然后将源文件的sheet数据合并到目标文件中,确保仅当目标文件的对应sheet为空时才进行合并。此代码适用于有相同结构的Excel数据整合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景

​ 现有需求,将多个excel的相同sheet页面写入同一个excel。且这些相同excel的sheet页表头和格式相同

​ 所以协助同事编写了核心逻辑实现,方便拓展使用。大家参考的时候灵活组合即可

二、创建实验对象

1、来源excel1:stg.xlsx

sheet页的名称:STG

idname
1a
2b
3c

2、来源excel2:ods.xlsx

sheet页的名称:ODS

idname
4q
5w
6e

3、目标excel:target.xlsx

sheet页的名称:STG

idname

sheet页的名称:ODS

idname

三、程序实现

要求需要合并的excel,相同sheet页的表头一样(否则合并将无任何实际含义)

本程序只实现了合并一个excel的sheet页面,如有特殊需求酌情修改,程序仅供参考

import os
import pandas

TARGET = 'target.xlsx'
STG = 'stg.xlsx'
ODS = 'ods.xlsx'


# 合并excel
def excel_combiner(src_path, target_path, sheet_name):
    """
    将来源excel合并到目标excel
    :param src_path:
    :param target_path:
    :param sheet_name:
    :return: dataframe合并后的最终excel对象
    """
    tar_df_all = None
    if not os.path.exists(target_path):
        return None
    if not os.path.exists(src_path):
        return None
    tar_data_frame = pandas.DataFrame(pandas.read_excel(target_path, sheet_name=sheet_name, keep_default_na=False))
    src_data_frame = pandas.DataFrame(pandas.read_excel(src_path, sheet_name=sheet_name, keep_default_na=False))
    if len(tar_data_frame.columns) == 0:
        tar_df_all = src_data_frame
    tar_df_all = pandas.concat([tar_data_frame, src_data_frame], ignore_index=True)
    return tar_df_all


if __name__ == '__main__':
    combiner = excel_combiner(STG, TARGET, 'STG')
    excel_writer = pandas.ExcelWriter(TARGET)
    combiner.to_excel(excel_writer, index=False, sheet_name='STG')
    excel_writer.close()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值