Python实现合并多个Excel文件中的指定sheet

 更新时间:2023年10月30日 09:19:12   作者:qwerrt9  
这篇文章主要为大家介绍了一个用于合并多个Excel文件中指定sheet的Python代码,这个功能可以方便地整理和分析数据,文中的示例代码简洁易懂,需要的可以参考下

本文将介绍一个用于合并多个Excel文件中指定sheet的Python代码。这个功能可以方便地整理和分析数据。我们将逐步解释代码的每个部分,并提供示例用法。

导入库

首先,我们导入了需要使用的三个库:ospandastime。这些库分别用于操作文件和文件夹、处理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的文章就介绍到这了,更多相关Python合并Excel中指定sheet内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何利用Pyecharts可视化微信好友

    如何利用Pyecharts可视化微信好友

    这篇文章主要给大家介绍了关于如何利用Pyecharts可视化微信好友的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Pyecharts具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • python中with用法讲解

    python中with用法讲解

    在本篇文章里小编给大家整理的是关于python中with用法讲解内容,有需要的朋友们可以参考下。
    2020-02-02
  • Python中用xlwt制作表格实例讲解

    Python中用xlwt制作表格实例讲解

    在本篇文章里小编给大家整理的是一篇关于Python中用xlwt制作表格实例讲解内容,有兴趣的朋友们可以学习下。
    2020-11-11
  • Python高效处理大文件的方法详解

    Python高效处理大文件的方法详解

    在这篇文章中,我们将学习如何使用multiprocessing、joblib和tqdm Python包减少大文件的处理时间。这是一个简单的教程,可以适用于任何文件、数据库、图像、视频和音频,感兴趣的可以了解一下
    2022-07-07
  • Pandas数据连接pd.concat的实现

    Pandas数据连接pd.concat的实现

    本文主要介绍了Pandas数据连接pd.concat的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • python实现web应用框架之增加动态路由

    python实现web应用框架之增加动态路由

    这篇文章主要介绍web应用框架如何添加动态路由,在我们编写的框架中,我们添加动态路由,是使用了正则表达式,同时在注册的时候,需要注明该路由是请求路由,文中有详细的代码示例,需要的朋友可以参考下
    2023-05-05
  • Python解析Excle文件中的数据方法

    Python解析Excle文件中的数据方法

    今天小编就为大家分享一篇Python解析Excle文件中的数据方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 三个Python常用的数据清洗处理方式总结

    三个Python常用的数据清洗处理方式总结

    这篇文章主要为大家详细介绍了python数据处理过程中三个主要的数据清洗说明,分别是缺失值/空格/重复值的数据清洗,感兴趣的小伙伴可以了解一下
    2022-12-12
  • python利用urllib实现爬取京东网站商品图片的爬虫实例

    python利用urllib实现爬取京东网站商品图片的爬虫实例

    下面小编就为大家带来一篇python利用urllib实现爬取京东网站商品图片的爬虫实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Python pandas找出、删除重复的数据实例

    Python pandas找出、删除重复的数据实例

    在面试中很可能遇到给定一个含有重复元素的列表,删除其中重复的元素,下面这篇文章主要给大家介绍了关于Python pandas找出、删除重复数据的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07

最新评论