Python合并多个Excel文件的方法实现与对比

 更新时间:2026年01月12日 08:31:09   作者:用户372157426135  
在日常工作中,处理多个 Excel 文件并将它们合并为一个文件,本文将介绍两种使用 Python 合并 Excel 文件的方法,文中的示例代码讲解详细, 感兴趣的小伙伴可以了解下

在日常工作中,处理多个 Excel 文件并将它们合并为一个文件,常常是数据分析、报告生成等工作的必要步骤。对于数据分析师、业务人员以及任何需要处理大量 Excel 数据的人来说,这是一项常见且繁琐的任务。与其手动复制粘贴不同工作表中的数据,不如使用 Python 自动化这一过程,既省时又高效。

本文将介绍两种使用 Python 合并 Excel 文件的方法。这些方法可以帮助您简化合并过程,尤其是在处理大数据集时,节省大量的时间和精力。

前提条件

要通过编程方式操作 Excel 文件,您需要一个支持 Excel 文件处理的库。在本篇文章中,我们使用 Spire.XLS for Python,这是一个可以读取、修改和保存 Excel 文件的 Python 库,且不依赖于 Microsoft Excel。

您可以使用以下命令通过 pip 安装该库:

pip install spire.xls

安装完成后,您就可以在 Python 中操作 Excel 文件,通过 API 提供的样式相关属性,控制单元格对齐、文本旋转等功能。

方法一:将多个 Excel 文件合并成一个工作簿(多个工作表)

这种方法将多个 Excel 文件合并为一个工作簿,并保留每个文件中的原始工作表。适用于您希望保留文件原有结构,同时又需要将多个文件合并到一个工作簿中的情况。

代码示例

import os
from spire.xls import *

# 存放要合并的 Excel 文件的文件夹
input_folder = './sample_files'
# 合并后的工作簿文件名
output_file = 'merged_workbook.xlsx'

# 初始化合并的工作簿
merged_workbook = None

# 遍历输入文件夹中的所有文件
for filename in os.listdir(input_folder):
    # 只处理 .xls 或 .xlsx 格式的 Excel 文件
    if filename.endswith('.xlsx') or filename.endswith('.xls'):
        file_path = os.path.join(input_folder, filename)
        
        # 加载当前的 Excel 文件
        source_workbook = Workbook()
        source_workbook.LoadFromFile(file_path)

        if merged_workbook is None:
            # 第一个文件作为基础合并工作簿
            merged_workbook = source_workbook
        else:
            # 后续文件将其工作表复制到合并工作簿中
            for i in range(source_workbook.Worksheets.Count):
                sheet = source_workbook.Worksheets.get_Item(i)
                merged_workbook.Worksheets.AddCopy(sheet, WorksheetCopyType.CopyAll)

# 将合并后的工作簿保存到指定的文件
merged_workbook.SaveToFile(output_file, ExcelVersion.Version2016)

工作原理

  • 设置文件夹路径:指定存放 Excel 文件的文件夹(input_folder)。
  • 遍历文件:脚本会检查文件夹中的每个文件,确保它们是 .xls.xlsx 格式的文件。
  • 加载工作簿:对于每个文件,脚本将其加载到 Workbook 对象中。
  • 合并工作表:第一个文件初始化了 merged_workbook,后续文件的工作表会被复制到这个工作簿中。
  • 保存输出:最后,合并后的工作簿会保存到指定的文件。

输出:

最终输出将是一个名为 ​​merged_workbook.xlsx​​ 的 Excel 文件,包含了所有 Excel 文件的工作表。

方法二:将多个 Excel 文件合并到一个工作表中

在这种方法中,我们将多个 Excel 文件的数据合并到一个工作表中。这种方法非常适合将不同工作表中的数据合并为一个工作表,数据按文件顺序依次排列。

代码示例

import os
from spire.xls import *

# 存放要合并的 Excel 文件的文件夹
input_folder = './excel_worksheets'
# 合并后的工作簿文件名
output_file = 'merged_into_one_sheet.xlsx'

# 创建一个新的工作簿来存放合并的数据
merged_workbook = Workbook()
# 使用新工作簿中的第一个工作表作为目标工作表
merged_sheet = merged_workbook.Worksheets[0]

# 初始化开始复制数据的行
current_row = 1

# 遍历输入文件夹中的所有文件
for filename in os.listdir(input_folder):
    # 只处理 .xls 或 .xlsx 格式的 Excel 文件
    if filename.endswith('.xlsx') or filename.endswith('.xls'):
        file_path = os.path.join(input_folder, filename)

        # 加载当前的 Excel 文件
        workbook = Workbook()
        workbook.LoadFromFile(file_path)

        # 获取当前工作簿的第一个工作表
        sheet = workbook.Worksheets[0]

        # 获取工作表中已使用的范围
        source_range = sheet.Range

        # 设置目标工作表中的复制范围,从当前行开始
        dest_range = merged_sheet.Range[current_row, 1]

        # 将数据从源范围复制到目标范围
        source_range.Copy(dest_range)

        # 更新 current_row,确保不会覆盖已复制的数据
        current_row += sheet.LastRow

# 将合并后的工作簿保存到指定的输出文件
merged_workbook.SaveToFile(output_file, ExcelVersion.Version2016)

工作原理

  • 初始化工作簿:创建一个新的工作簿来存放所有合并的数据。
  • 遍历文件:像方法一一样,脚本会遍历文件夹中的所有 Excel 文件。
  • 复制数据:对于每个文件,脚本将其第一个工作表的数据复制到目标工作表中。
  • 更新行索引current_row 用来确保每个文件的数据不会覆盖,自动跳到下一个可用的行。
  • 保存输出:将合并后的数据保存到 merged_into_one_sheet.xlsx 文件中。

输出:

结果将是一个工作表,包含了来自所有 Excel 文件的数据,数据按文件顺序排列。

总结

将多个 Excel 文件合并为一个文件是一个常见的任务,尤其是当您需要处理大量文件时,手动操作非常繁琐。使用 Python 和 Spire.XLS 库,您可以轻松地自动化这一过程,从而节省大量时间和精力。

  • 方法一 适合当您希望保留每个文件的结构,并将其工作表保留在独立标签中的场景。
  • 方法二 更适合将多个工作表的数据合并到一个工作表中,便于汇总或分析信息。

这两种方法都可以根据您的需求进行自定义,设置好之后,它们将极大地提升您的工作效率,尤其是在处理多个 Excel 文件时。

到此这篇关于Python合并多个Excel文件的方法实现与对比的文章就介绍到这了,更多相关Python合并多个Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现PDF到Word文档的高效转换

    Python实现PDF到Word文档的高效转换

    这篇文章主要为大家详细介绍了如何使用Python编程语言,结合库和工具,将PDF文件转换为可编辑的Word文档,使文档的编辑变得方便高效,需要的可以参考下
    2024-01-01
  • Python批量修改图片分辨率的实例代码

    Python批量修改图片分辨率的实例代码

    今天小编就为大家分享一篇Python批量修改图片分辨率的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python中多线程的创建及基本调用方法

    Python中多线程的创建及基本调用方法

    由于注明的GIL的存在,Python尽管能创建多个线程,但是多线程却不能同时工作...well,这里我们来看一下Python中多线程的创建及基本调用方法
    2016-07-07
  • Python中变量交换的例子

    Python中变量交换的例子

    这篇文章主要介绍了Python中变量交换的例子,Python中的变量交换不需要临时变量,一个等号即可实现变量的交换,非常方便,需要的朋友可以参考下
    2014-08-08
  • Python Tkinter库从入门到进阶使用教程

    Python Tkinter库从入门到进阶使用教程

    Tkinter是Python标准库中内置的图形用户界面(GUI)工具包,提供了创建窗口、按钮、文本框等GUI元素的功能,本文将介绍Tkinter的基础知识,帮助大家快速入门
    2023-12-12
  • 详解python中的 is 操作符

    详解python中的 is 操作符

    is 操作符是Python语言的一个内建的操作符。它的作用在于比较两个变量是否指向了同一个对象。下面通过本文给大家详细介绍python中的 is 操作符,需要的朋友参考下吧
    2017-12-12
  • Python合并多张图片成PDF

    Python合并多张图片成PDF

    最近需要将记的笔记整理成一个pdf进行保存,所以就研究了一下如何利用Python代码将拍下来的照片整个合并成一个pdf,感兴趣的可以了解一下
    2021-06-06
  • Django框架获取form表单数据方式总结

    Django框架获取form表单数据方式总结

    这篇文章主要介绍了Django框架获取form表单数据方式总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Python学习笔记之getattr和hasattr用法示例详解

    Python学习笔记之getattr和hasattr用法示例详解

    在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章主要介绍了Python学习笔记之getattr和hasattr用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-08-08
  • ubuntu在线服务器python Package安装到离线服务器的过程

    ubuntu在线服务器python Package安装到离线服务器的过程

    这篇文章主要介绍了ubuntu在线服务器python Package安装到离线服务器,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04

最新评论