详细介绍:Python高效合并Excel多Sheet工作表,告别繁琐手动操作

news/2025/9/27 17:50:04/文章来源:https://www.cnblogs.com/yxysuanfa/p/19115393

Python高效合并Excel多Sheet工作表,告别繁琐手动操作

在日常办公中,我们经常会遇到一个Excel文件里包含多个工作表的情况,比如按日期、按部门分类的数据。如果要对这些数据进行汇总分析,手动复制粘贴不仅耗时,还容易出现疏漏。
在这里插入图片描述

今天就给大家分享一个实用的Python代码,能一键合并Excel中的所有工作表,让数据处理效率大幅提升。

完整代码

以下是实现该功能的完整代码,大家可以直接复制使用:

import pandas as pd
import os
def merge_excel_sheets(excel_file_path, output_file_path=None):
"""
读取 Excel 文件中的所有 sheet 页数据并汇总到一个 DataFrame 中
参数:
excel_file_path: Excel 文件路径
output_file_path: 输出的 Excel 文件路径,默认为 None (不输出到文件)
返回:
汇总后的 DataFrame
"""
# 读取 Excel 文件中的所有 sheet
xls = pd.ExcelFile(excel_file_path)
sheet_names = xls.sheet_names
# 创建一个空的 DataFrame 列表,用于存储每个 sheet 的数据
dfs = []
# 遍历每个 sheet
for sheet_name in sheet_names:
# 读取当前 sheet 的数据
df = pd.read_excel(excel_file_path, sheet_name=sheet_name)
# 添加一列标识数据来源的 sheet 名称
df['Sheet_Name'] = sheet_name
# 将当前 sheet 的 DataFrame 添加到列表中
dfs.append(df)
# 将所有 DataFrame 合并成一个
merged_df = pd.concat(dfs, ignore_index=True)
# 如果指定了输出路径,则保存到文件
if output_file_path:
merged_df.to_excel(output_file_path, index=False)
print(f"已将汇总数据保存到: {output_file_path
}")
return merged_df
# 使用示例
if __name__ == "__main__":
# 替换为你的 Excel 文件路径
input_file = "范例1.xlsx"
output_file = "merged_data.xlsx"
# 确保输入文件存在
if os.path.exists(input_file):
# 汇总数据并保存到新文件
result_df = merge_excel_sheets(input_file, output_file)
# 打印汇总结果的前几行
print("汇总数据预览:")
print(result_df.head())
# 打印每个 sheet 的行数统计
print("\n各 Sheet 数据行数:")
sheet_counts = result_df['Sheet_Name'].value_counts()
for sheet, count in sheet_counts.items():
print(f"{sheet
}: {count
} 行")
print(f"\n总计: {
len(result_df)
} 行数据")
else:
print(f"文件不存在: {input_file
}")

代码解析

1. 依赖库导入

代码开头导入了两个必要的库:

2. 核心函数:merge_excel_sheets

这是实现数据合并的核心函数,我们来逐步解析其工作流程:

步骤1:获取所有工作表名称xls = pd.ExcelFile(excel_file_path)

sheet_names = xls.sheet_names通过pd.ExcelFile方法读取Excel文件,再通过sheet_names属性获取该文件中所有工作表的名称,为后续遍历做准备。

步骤2:遍历处理每个工作表for sheet_name in sheet_names:
df = pd.read_excel(excel_file_path, sheet_name=sheet_name)
df['Sheet_Name'] = sheet_name
dfs.append(df)- 循环遍历每个工作表名称,使用`pd.read_excel`读取对应工作表的数据,得到一个DataFrame
  • 为当前DataFrame添加一个Sheet_Name列,记录该数据来自哪个工作表,方便后续溯源
  • 将处理好的DataFrame添加到列表dfs中暂存
步骤3:合并所有数据
merged_df = pd.concat(dfs, ignore_index=True)
使用`pd.concat`方法将列表中所有的DataFrame合并成一个,`ignore_index=True`表示合并后重新生成索引,避免索引重复。
步骤4:保存合并结果(可选)if output_file_path:
merged_df.to_excel(output_file_path, index=False)
print(f"已将汇总数据保存到: {output_file_path}")如果指定了输出文件路径,就将合并后的DataFrame保存为Excel文件,`index=False`表示不保存索引列。

3. 使用示例

代码最后部分是使用示例,主要做了这些事:

  • 定义输入文件和输出文件的路径
  • 检查输入文件是否存在,避免报错
  • 调用合并函数进行数据处理
  • 输出合并结果的预览、各工作表数据行数统计和总数据量

如何使用该代码

  1. 安装依赖库:首先确保安装了pandas库,如果没有安装,可运行以下命令:

    pip install pandas openpyxl

    openpyxl是pandas处理xlsx格式文件所需的依赖)

  2. 准备Excel文件:将需要合并的Excel文件准备好,记住其路径。

  3. 修改文件路径:在代码的if __name__ == "__main__":部分,将input_fileoutput_file替换为实际的文件路径,例如:

    input_file = "C:/data/各部门数据.xlsx"
    output_file = "C:/data/全公司数据汇总.xlsx"
  4. 运行代码:执行Python脚本,等待程序运行完成。运行成功后,会在控制台输出汇总数据预览和统计信息,同时在指定路径生成合并后的Excel文件。

有了这个代码,再也不用手动一个个复制粘贴工作表数据了,尤其适合需要经常处理多工作表Excel文件的办公人士。如果在使用过程中遇到问题,欢迎在评论区留言交流~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫的实现流程

Python爬虫的实现流程一、数据来源分析 1、明确需求: 明确采集的网站以及数据内容 * 网址:https://www.bilibili.com/video/BV1o675zAESg/?spm_id_from=333.1387.upload.video_card.click&vd_source=7893f8f278…

常州溧阳网站建设wordpress全屏广告插件

UPD:2018/10/9 第一次墙外调查:立个Flag吧!第100场,上红! 哈哈哈哈哈哈哈哈哈哈! 妙啊! UPD:2018/10/23 第二次墙外调查:下一场,要不要试着把橙名第二段击穿呢…

长沙网开亿面做网站多少钱网络工程师的前景

既然你是一名 Linux 用户,为什么不关注一下开源绘图应用程序呢?-- Ankush Das(作者)小时候,当我开始使用计算机(在 Windows XP 中)时,我最喜欢的应用程序是微软的“画图”。我能在它上面涂鸦数个小时。出乎意料,孩子们…

调度算法,上古三算法

先来先服务FCFS 周转时间=完成时间-到达时间 带权周转时间=周转时间/运行时间 等待时机=周转时间-运行时间-io操作时间 是非抢占式的算法 优点:公平,算法实现简单 缺点:排在长作业后面的短作业需要等待很长时间,带…

2025 年电脑租赁公司最新推荐排行榜:深度解析 TOP3 优质租电脑公司,助企业个人租赁电脑选择指南

在数字化时代,电脑是企业办公、个人学习娱乐的核心工具,可传统购买模式弊端显著。企业购置电脑资金占用大、闲置率高且运维成本高,个人买高性能电脑投入大、易过时。租电脑因成本可控、灵活等优势成趋势,但市场公司…

完整教程:✨WPF编程基础【1.2】:XAML中的属性

完整教程:✨WPF编程基础【1.2】:XAML中的属性pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

全屏响应式网站模板有关网站开发的文献

let和const关键字:let和const允许你声明具有块级作用域的变量和常量。这有助于避免使用var时可能出现的变量提升和全局污染问题。模板字符串:使用反引号()可以创建多行字符串和嵌入表达式。 javascript let name world; let greeting Hello, ${name}!…

自动化运维工具 Ansible 集中化管理服务器 - 实践

自动化运维工具 Ansible 集中化管理服务器 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas",…

学位论文中 公式的插入,格式调整、编号以及引用

mathtype导致论文行间距变大,解决方案看这儿:https://www.cnblogs.com/dwj192/p/18457816

2025 北京羊蝎子餐厅推荐排行榜:TOP3最新必吃榜单,聚焦朝阳昌平东城等区域,揭秘北京羊蝎子餐厅必吃的门店!

2025 年的北京餐饮市场,羊蝎子凭借醇厚骨香与滋补属性仍是食客高频选择,朝阳、昌平、东城、二拨子等热门区域门店密集,却也暗藏食材参差、工艺敷衍的问题 —— 肉质柴硬、汤底寡淡、营业时长不足等痛点,让不少人难…

复刻江协激光触发器

复刻江协激光触发器 1、初始化硬件将PB8和PB9分别设为SCK与SDA端的接口注意:江协的OLED驱动为软件模拟IIC所以不要使能IIC模块使能RCC,改为外部晶振将PA9设为GPIO_EXTI,接入激光模块的D0端并使能GPIO的外部中断在ma…

Eurocrypt 2021 s Accepted Papers

转载自:https://eurocrypt.iacr.org/2021/acceptedpapers.phpAccepted Papers 接收论文These papers are listed in order of submission.这些论文按提交顺序排列。Secure Software Leasing 安全软件租赁 Prabha…

Linux云服务器如何手动配置DNS?

在Linux云服务器上手动配置 DNS(域名系统) 是确保服务器能够正常解析域名的重要步骤。以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案。1. 为什么需要手动配置 DNS? 默认情况下,云服务器会自动使用…

Python 输入、输出的用法

input的用法 很简单,直接在编制器里面输入input() 就可以读取一串字符串,注意:input会输入一整行字符串 比如说下面这个例子 a = input() intput 也可以是在括号内放入一个字符串 这样输入的时候,就会看到这个屏幕…

第一章——概论 - AlgosEng

计算机基本概念 逻辑模块:输入设备、控制器、运算器、存储器、输出设备 存储程序工作方式:编制程序、存储程序、自动连续执行程序、输出结果 计算机分类:模拟计算机(由模拟运算器构成,处理连续模拟量)、数字计算…

用django做的网站西乡做网站

我们在javaEE的开发中,肯定是要用到数据库的,那么在javaEE的开发中,是如何使用代码实现和SQL2008的连接的呢?在这一篇文章中,我将讲解如何最简单的使用jdbc进行SQL2008的数据库的连接的。首先我们看下我们的数据库的一…

宿迁558网络专业做网站重庆seo标准

正常我们在mysql官网下载安装的MySQL比较大,因为它集成了好多东西,尽管方便,但是东西比较多,有些我们可能不想要,这时我们可以直接下载单个MySQL Server安装,所以这篇文章主要介绍的就是在window环境下安装…

网站布局的重要性wordpress视频主题下载地址

Redis是一个开源、高性能、内存键值存储数据库,由 Salvatore Sanfilippo(网名antirez)创建,并在BSD许可下发布。它不仅可以用作缓存系统来加速数据访问,还可以作为持久化的主数据存储系统或消息中间件使用。Redis因其数…

劝娃妈和娃不要学老人坐姿有感:老人无奈才坐成那样的。。AI协助分析很到位

因为娃和娃妈吃饭时抬腿,我就告诉他们不要去老人家坐,他们是身体结构和能量发生变化才那样做的,既不美观又不健康。。随后有了下述问题: 老人坐姿,跟年轻时比较会有什么区别? AI分析、回答的都不错: 年龄增长会…