使用Python合并Excel文件中的多个Sheet的实现过程

 更新时间:2024年10月17日 10:11:48   作者:winfredzhang  
在Python中,可以使用pandas库来处理Excel文件,将多个工作表(sheets)合并为一个工作表,以下是一个详细的代码示例,展示了如何实现这一功能,文中有相关的代码供大家参考,需要的朋友可以参考下

在日常工作中,我们经常会遇到需要处理多个Excel工作表(Sheet)的情况。比如,一个Excel文件中包含了一个月内每天的数据,每个工作表代表一天。有时候,为了方便分析,我们需要将这些分散的数据合并到一个工作表中。手动复制粘贴不仅效率低下,而且容易出错。这时,我们可以使用Python的pandas库和openpyxl库来自动化这个过程。
D:\spiderdocs\mergesheet.py

全部代码

import wx
from openpyxl import load_workbook, Workbook

class MyApp(wx.App):
    def OnInit(self):
        frame = MyFrame(None, title="Excel Sheet Merger")
        frame.Show()
        return True

class MyFrame(wx.Frame):
    def __init__(self, parent, title):
        super(MyFrame, self).__init__(parent, title=title, size=(300, 200))
        panel = wx.Panel(self)
        vbox = wx.BoxSizer(wx.VERTICAL)

        self.button = wx.Button(panel, label="Select Excel File")
        self.button.Bind(wx.EVT_BUTTON, self.on_open_file)

        vbox.Add(self.button, 0, wx.ALL | wx.CENTER, 5)
        panel.SetSizer(vbox)

    def on_open_file(self, event):
        with wx.FileDialog(self, "Open Excel file", wildcard="Excel files (*.xlsx)|*.xlsx",
                           style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST) as fileDialog:
            if fileDialog.ShowModal() == wx.ID_CANCEL:
                return

            path = fileDialog.GetPath()
            self.merge_sheets(path)

    def merge_sheets(self, filepath):
        wb = load_workbook(filepath)
        new_wb = Workbook()
        new_ws = new_wb.active
        new_ws.title = "Merged Sheet"

        for i, sheet_name in enumerate(wb.sheetnames[:5]):
            ws = wb[sheet_name]
            for row in ws.iter_rows(values_only=True):
                new_ws.append(row)

        save_path = filepath.replace('.xlsx', '_merged.xlsx')
        new_wb.save(save_path)
        wx.MessageBox(f"Merged file saved as: {save_path}", "Info", wx.OK | wx.ICON_INFORMATION)

if __name__ == '__main__':
    app = MyApp()
    app.MainLoop()

环境准备

首先,确保你的环境中安装了pandasopenpyxl库。如果没有安装,可以通过以下命令安装:

pip install pandas openpyxl

代码分析

下面是一个简单的Python脚本,用于合并一个Excel文件中的前5个工作表:

import pandas as pd

def merge_sheets(file_path, output_file, num_sheets=5):
    # 加载Excel文件
    xls = pd.ExcelFile(file_path)
    
    # 创建一个空的DataFrame用于存储合并后的数据
    merged_df = pd.DataFrame()
    
    # 循环读取前num_sheets个工作表
    for sheet_name in xls.sheet_names[:num_sheets]:
        # 读取每个工作表的数据
        df = pd.read_excel(xls, sheet_name=sheet_name)
        # 将读取的数据追加到merged_df中
        merged_df = pd.concat([merged_df, df], ignore_index=True)
    
    # 将合并后的数据保存到新的Excel文件
    merged_df.to_excel(output_file, index=False)

# 调用函数
file_path = 'path_to_your_excel_file.xlsx'
output_file = 'merged_excel_file.xlsx'
merge_sheets(file_path, output_file)

代码解释

  1. 导入库:首先,我们导入了pandas库,它是Python中用于数据处理和分析的强大工具。

  2. 定义函数:我们定义了一个名为merge_sheets的函数,它接受三个参数:file_path(Excel文件的路径)、output_file(输出文件的名称)、num_sheets(需要合并的工作表数量,默认为5)。

  3. 加载Excel文件:使用pd.ExcelFile函数加载Excel文件,这样我们可以访问文件中的所有工作表。

  4. 初始化DataFrame:创建一个空的DataFramemerged_df,用于存储合并后的数据。

  5. 循环读取工作表:通过xls.sheet_names获取所有工作表的名称,并循环读取前num_sheets个工作表。对于每个工作表,使用pd.read_excel函数读取数据,并使用pd.concat函数将其追加到merged_df中。

  6. 保存合并后的数据:最后,使用to_excel函数将合并后的数据保存到新的Excel文件中。

运行结果

注意事项

  • 确保file_pathoutput_file正确指向了你的文件路径和期望的输出文件。
  • 如果你的Excel文件中的工作表数量超过了5个,你可以通过修改num_sheets参数来调整需要合并的工作表数量。
  • 合并的数据将按照它们在原始文件中的顺序排列。

通过使用Python脚本自动化合并Excel工作表的过程,我们可以节省大量的时间和精力,特别是在处理大型数据集时。这种方法不仅提高了效率,而且减少了人为错误的可能性。

以上就是使用Python合并Excel文件中的多个Sheet的实现过程的详细内容,更多关于Python合并多个Sheet的资料请关注脚本之家其它相关文章!

相关文章

  • Python安装与VSCode配置完整教程

    Python安装与VSCode配置完整教程

    本文详细介绍了Python 3.9.10安装与VSCode配置流程,适配ESP32-S3开发环境需求,包括下载安装Python、配置环境变量、安装VSCode及配置中文界面、关联Python环境等步骤,并解决了常见问题,感兴趣的朋友跟随小编一起看看吧
    2026-04-04
  • Python对象的深拷贝和浅拷贝详解

    Python对象的深拷贝和浅拷贝详解

    这篇文章主要介绍了Python对象的深拷贝和浅拷贝详解,本文从Python核心编程2书中摘录而来,总结的比较精辟,需要的朋友可以参考下
    2014-08-08
  • python如何实现远程控制电脑(结合微信)

    python如何实现远程控制电脑(结合微信)

    这篇文章主要介绍了python如何实现远程控制电脑,利用python设计了一个程序来实现自由管控,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)

    Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)

    这篇文章主要介绍了Django2.1集成xadmin管理后台所遇到的错误集锦(填坑),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Python使用chrome配置selenium操作详解

    Python使用chrome配置selenium操作详解

    这篇文章主要为大家详细介绍了chrome配置selenium操作的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Anaconda安装之后Spyder打不开解决办法(亲测有效!)

    Anaconda安装之后Spyder打不开解决办法(亲测有效!)

    这篇文章主要给大家介绍了关于Anaconda安装之后Spyder打不开解决办法,文中将解决的过程介绍的非常详细,亲测有效,对同样遇到这个问题的朋友具有一定的参考学习价值,需要的朋友可以参考下
    2023-04-04
  • Python一行代码快速实现程序进度条示例

    Python一行代码快速实现程序进度条示例

    这篇文章主要为大家介绍了Python一行代码快速实现程序进度条示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Python制作exe文件简单流程

    Python制作exe文件简单流程

    在本篇文章里我们给大家分享了关于Python制作exe文件的相关知识点内容,有需要的朋友们学习下。
    2019-01-01
  • python中re模块知识点总结

    python中re模块知识点总结

    在本篇文章里小编给大家整理的是一篇关于python中re模块知识点总结内容,有兴趣的朋友们可以学习下。
    2021-01-01
  • python使用sklearn实现决策树的方法示例

    python使用sklearn实现决策树的方法示例

    这篇文章主要介绍了python使用sklearn实现决策树的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09

最新评论