Python合并多个Excel文件中的指定sheet
本文将介绍一个用于合并多个Excel文件中指定sheet的Python代码。这个功能可以方便地整理和分析数据。我们将逐步解释代码的每个部分,并提供示例用法。
导入库
首先,我们导入了需要使用的三个库:os、pandas和time。这些库分别用于操作文件和文件夹、处理Excel文件以及计算程序执行时间。
import os
import pandas as pd
import time
定义函数
我们定义了一个名为merge_excel_sheets的函数,用于将多个Excel文件中的指定sheet合并到一个新的Excel文件中。该函数接受三个参数:folder_path(文件夹路径)、excel_list(包含要合并的Excel文件和sheet名的列表)和output_file(输出文件路径)。
def merge_excel_sheets(folder_path, excel_list, output_file):
start_time = time.time() with pd.ExcelWriter(output_file) as writer:
for excel_name, sheet_name in excel_list:
file_path = os.path.join(folder_path, excel_name)
df = pd.read_excel(file_path, sheet_name=sheet_name) sheet_name_combined = f"{excel_name[:-5]}-{sheet_name}"
df.to_excel(writer, sheet_name=sheet_name_combined, index=False) end_time = time.time()
execution_time = end_time - start_time
print(f"程序执行时间:{execution_time}秒")
在函数内部,我们首先记录程序开始执行的时间。然后,我们使用pd.ExcelWriter创建一个空的Excel Writer对象,用于写入合并后的数据。
start_time = time.time() with pd.ExcelWriter(output_file) as writer:
接下来,我们使用一个循环来处理每个Excel文件和sheet。对于每个文件和sheet,我们构造完整的文件路径,并使用pd.read_excel读取数据并存储为DataFrame对象。
for excel_name, sheet_name in excel_list:
file_path = os.path.join(folder_path, excel_name)
df = pd.read_excel(file_path, sheet_name=sheet_name)
然后,我们构造合并后的sheet名称,格式为"原文件名-原sheet名",并使用df.to_excel将DataFrame对象中的数据写入到指定的sheet中。
sheet_name_combined = f"{excel_name[:-5]}-{sheet_name}"
df.to_excel(writer, sheet_name=sheet_name_combined, index=False)
最后,我们计算程序执行的时间,并将其打印出来。
end_time = time.time()
execution_time = end_time - start_time
print(f"程序执行时间:{execution_time}秒")
示例用法
我们提供了一个示例用法,包括文件夹路径、要合并的Excel文件和sheet的列表,以及输出文件路径。通过调用merge_excel_sheets函数,我们可以执行合并操作。
folder_path = "E:\\工作内容"
excel_list = [
("一店9月.xlsx", "原始数据"),
("二店9月.xlsx", "原始"),
("三店9月.xlsx", "原始数据"),
("四店9月.xlsx", "原始数据"),
("五店9月-离职.xlsx", "原始数据")
]
output_file = os.path.join(folder_path, "output.xlsx") merge_excel_sheets(folder_path, excel_list, output_file)
完整代码
import os
import pandas as pd # 导入pandas库
import time # 导入时间库,用于计算程序执行时间 def merge_excel_sheets(folder_path, excel_list, output_file):
start_time = time.time() # 记录程序开始执行的时间 # 创建一个空的Excel Writer对象,用于写入合并后的数据
with pd.ExcelWriter(output_file) as writer:
# 循环处理每个Excel文件和sheet
for excel_name, sheet_name in excel_list:
# 根据文件名和文件夹路径,构造完整的文件路径
file_path = os.path.join(folder_path, excel_name)
# 读取指定Excel文件中指定sheet的数据,并存储为DataFrame类型的对象
df = pd.read_excel(file_path, sheet_name=sheet_name) # 构造合并后的sheet名称,格式为"原文件名-原sheet名"
sheet_name_combined = f"{excel_name[:-5]}-{sheet_name}"
# 将DataFrame对象中的数据写入到指定sheet中
df.to_excel(writer, sheet_name=sheet_name_combined, index=False) end_time = time.time() # 记录程序结束执行的时间
execution_time = end_time - start_time # 计算程序执行的时间
print(f"程序执行时间:{execution_time}秒") # 输出程序执行的时间 # 示例用法
folder_path = "E:\\工作内容"
excel_list = [
("一店9月.xlsx", "原始数据"),
("二店9月.xlsx", "原始"),
("三店9月.xlsx", "原始数据"),
("四店9月.xlsx", "原始数据"),
("五店9月-离职.xlsx", "原始数据")
]
output_file = os.path.join(folder_path, "output.xlsx")
merge_excel_sheets(folder_path, excel_list, output_file) # 调用合并函数,将指定的Excel文件中指定sheet的数据进行合并
Python合并多个Excel文件中的指定sheet的更多相关文章
- 把当前文件夹的xlsx或xls文件合并到一个excel文件中的不同sheet中
把当前文件夹的xlsx或xls文件合并到一个excel文件中的不同sheet中步骤如下: 把需要合并的文件放到同一个文件夹 在该文件夹中新建一个excel文件 打开新建的excel问价,把鼠标放到sh ...
- 用python的pandas读取excel文件中的数据
一.读取Excel文件 使用pandas的read_excel()方法,可通过文件路径直接读取.注意到,在一个excel文件中有多个sheet,因此,对excel文件的读取实际上是读取指定文件.并 ...
- 批处理快速合并多分Excel文件并将指定列的数据去重复
1.批处理快速合并多个excel文件方法: 新建一个.txt文本文件,就命名为合并.txt吧. 而后开启文件,复制以下代码到文件中: @echo off E: cd xls dir copy *.cs ...
- 多个excel文件内容合并到一个excel文件的多个sheet的小程序
# -*- coding:utf-8 -*- import xlrd, xlsxwriter # 待合并excelallxls = ["D:\\excelcs\\***.xlsx" ...
- [Python]将Excel文件中的数据导入MySQL
Github Link 需求 现有2000+文件夹,每个文件夹下有若干excel文件,现在要将这些excel文件中的数据导入mysql. 每个excel文件的第一行是无效数据. 除了excel文件中已 ...
- 用Python的pandas框架操作Excel文件中的数据教程
用Python的pandas框架操作Excel文件中的数据教程 本文的目的,是向您展示如何使用pandas 来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其 ...
- python 作业 批量读取excel文件并合并为一张excel
1 #!/usr/bin/env python 2 # coding: utf-8 3 4 def concat_file(a,b): 5 #如何批量读取并快速合并文件夹中的excel文件 6 imp ...
- Python学习笔记_从CSV读取数据写入Excel文件中
本示例特点: 1.读取CSV,写入Excel 2.读取CSV里具体行.具体列,具体行列的值 一.系统环境 1. OS:Win10 64位英文版 2. Python 3.7 3. 使用第三方库:csv. ...
- Python:将爬取的网页数据写入Excel文件中
Python:将爬取的网页数据写入Excel文件中 通过网络爬虫爬取信息后,我们一般是将内容存入txt文件或者数据库中,也可以写入Excel文件中,这里介绍关于使用Excel文件保存爬取到的网页数据的 ...
- Python使用openpyxl读写excel文件
Python使用openpyxl读写excel文件 这是一个第三方库,可以处理xlsx格式的Excel文件.pip install openpyxl安装.如果使用Aanconda,应该自带了. 读取E ...
随机推荐
- 【环境搭建】phpstudy显示目录列表
问题来源 新版本的PHPStudy访问127.0.0.1不再像以前版本一样显示目录列表了 解决办法 打开vhosts.conf 将图中标记出来的一行Options FollowSymLinks Exe ...
- Reactjs学习笔记
本篇是关于React的简介 ReactJS是Facebook推出的一款前端框架,2013年开源,提供了一种函数式编程思想,拥有比较健全的文档和完善的社区,在React16的版本中对算法进行了革新,称之 ...
- git 出现 连接超时443的情况
解决 Failed to connect to github.com port 443:connection timed out 1)取消代理 git config --global --unset ...
- CMU15-445 Project4 Concurrency Control心得
一.概述 过瘾!过瘾!过瘾!P4 真过瘾!写 P3 的博客时我说过"感觉自己在数据库方面真正成长了",但写完 P4 之后最大的感受就是,我终于理解了 andy 在第一课说过的&qu ...
- jdbc-plus是一款基于JdbcTemplate增强工具包,基于JdbcTemplate已实现分页、多租户、动态表名等插件,可与mybatis、mybatis-plus等混合使用
jdbc-plus简介 jdbc-plus是一款基于JdbcTemplate增强工具包,基于JdbcTemplate已实现分页.多租户.动态表名等插件,可与mybatis.mybatis-plus等混 ...
- 简单运维oceanbase
简单运维oceanbase 数据库集群参数修改 直连 proxy 连接 手动修改参数 show parameters like '%xx%' ; alter system set xxx='xx'; ...
- Unsupervised Learning of Depth and Ego-Motion from Video(CVPR2017)论文阅读
深度估计问题 从输入的单目或双目图像,计算图像物体与摄像头之间距离(输出距离图),双目的距离估计应该是比较成熟和完善,但往单目上考虑主要还是成本的问题,所以做好单目的深度估计有一定的意义.单目的意思是 ...
- Vue: 配置axios基准路径并使用
配置 main.js文件修改 在main.js中进行如下修改 // 设置axios全局api import axios from 'axios' // 请求基准路径的配置 后台 axios.defau ...
- 揭秘 .NET 中的 TimerQueue(下)
前言 上文给大家介绍了 TimerQueue 的任务调度算法. https://www.cnblogs.com/eventhorizon/p/17557821.html 这边做一个简单的复习. Tim ...
- 26种source-map看花了眼?别急,理解这几个全弄懂
上一篇 webpack处理模块化源码 的文章中提到了 "source map",这一篇来详细说说. 有什么作用 source map 用于映射编译后的代码与源码,这样如果编译后的代 ...