使用Python合并多个Excel文件

合并Excel可以将多个文件中的数据合并到一个文件中,这样可以帮助我们更好地汇总和管理数据。日常工作中,合并Excel主要有以下两种需求:

  • 将多个Excel文件合并为一个文件
  • 将多个Excel工作表合并为一个工作表

这篇文章将介绍如何使用第三方Python库 Spire.XLS for Python 实现以上两种合并Excel文件的需求。


将多个Excel文件合并为一个文件

Spire.XLS for Python 可以将同一文件夹或者不同文件路径下的多个Excel文件合并到一个Excel文件中。大概实现思路是:

  1. 首先创建一个列表,用于存储所有需要合并的Excel文件。
  2. 然后遍历列表中的文件并将它们都载入到一个临时的工作簿中。
  3. 最后遍历临时工作簿中的所有工作表,然后通过Workbook.Worksheets.AddCopy() 方法将这些工作表都复制到一个新的Excel文件中并保存。

目标文件(位于不同文件路径):

合并后的Excel文件:

示例代码:

复制代码
from spire.xls import *
from spire.common import *
 
# 创建一个列表,并将需要合并的Excel文件放入其中
files = []
files.append("F:\\成绩表.xlsx" )
files.append("分析.xlsx")
files.append("C:\\Users\\Administrator\\Desktop\\总结.xlsx")
 
# 创建一个新工作簿
newbook = Workbook()
# 删除其中的默认工作表
newbook.Worksheets.Clear()
 
# 创建一个临时工作簿
tempbook = Workbook()
# 遍历列表中的文件路径
for file in files:
    # 将列表中的文件加载到临时工作簿中
    tempbook.LoadFromFile(file)
    # 遍历临时工作簿中所有的工作表
    for sheet in tempbook.Worksheets:
        # 将临时工作簿中的工作表复制到新工作簿中
        newbook.Worksheets.AddCopy(sheet, WorksheetCopyType.CopyAll)
 
# 将新工作簿另存为.xlsx文件
newbook.SaveToFile("合并Excel文件.xlsx", ExcelVersion.Version2016)
newbook.Dispose()
tempbook.Dispose()

将多个Excel工作表合并为一个工作表

将多个文件中的工作表合并到一个工作表中首先是需要获取工作表中的包含数据的单元格区域,然后将该单元格区域通过 **CellRange.Copy(destRange)**方法将其复制到指定工作表中。

目标工作表:

合并后:

示例代码:

复制代码
from spire.xls import *
from spire.common import *
 
# 创建Workbook类的对象
workbook = Workbook()
# 加载第一个Excel文件
workbook.LoadFromFile("表1.xlsx")
 
# 创建Workbook类的对象
workbook2 = Workbook()
# 加载第二个Excel文件
workbook2.LoadFromFile("表2.xlsx")
 
# 获取两个Excel文件中的第一张工作表
sheet1 = workbook.Worksheets[0]
sheet2 = workbook2.Worksheets[0]
 
# 获取第二个文件工作表中用到的区域
sourceRange = sheet2.AllocatedRange
# 在第一个文件工作表中指定目标区域
destRange = sheet1.Range[sheet1.LastRow + 1, 1]
 
# 将第二个文件工作表中用到的区域复制到第一个文件工作表中目标区域
sourceRange.Copy(destRange)
 
# 保存结果文件
workbook.SaveToFile("合并多个工作表.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

参考链接:

下载安装Spire.XLS for Python库

操作Excel的Python库教程示例

相关推荐
xcLeigh6 分钟前
OpenCV从零开始:30天掌握图像处理基础
图像处理·人工智能·python·opencv
大乔乔布斯6 分钟前
AttributeError: module ‘smtplib‘ has no attribute ‘SMTP_SSL‘ 解决方法
python·bash·ssl
明灯L19 分钟前
《函数基础与内存机制深度剖析:从 return 语句到各类经典编程题详解》
经验分享·python·算法·链表·经典例题
databook20 分钟前
不平衡样本数据的救星:数据再分配策略
python·机器学习·scikit-learn
碳基学AI25 分钟前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义免费下载方法
大数据·人工智能·python·gpt·算法·语言模型·集成学习
niuniu_66626 分钟前
简单的自动化场景(以 Chrome 浏览器 为例)
运维·chrome·python·selenium·测试工具·自动化·安全性测试
FearlessBlot29 分钟前
Pyinstaller 打包flask_socketio为exe程序后出现:ValueError: Invalid async_mode specified
python·flask
独好紫罗兰39 分钟前
洛谷题单3-P5718 【深基4.例2】找最小值-python-流程图重构
开发语言·python·算法
正脉科工 CAE仿真1 小时前
基于ANSYS 概率设计和APDL编程的结构可靠性设计分析
人工智能·python·算法
程序员一诺1 小时前
【Django开发】前后端分离django美多商城项目第15篇:商品搜索,1. Haystack介绍和安装配置【附代码文档】
后端·python·django·框架