不同excel的sheet页追加合并

一、背景

​ 现有需求,将多个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()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值