使用Python合并多个Excel文件
合并Excel可以将多个文件中的数据合并到一个文件中,这样可以帮助我们更好地汇总和管理数据。日常工作中,合并Excel主要有以下两种需求:
- 将多个Excel文件合并为一个文件
- 将多个Excel工作表合并为一个工作表
这篇文章将介绍如何使用第三方Python库 Spire.XLS for Python 实现以上两种合并Excel文件的需求。
将多个Excel文件合并为一个文件
Spire.XLS for Python 可以将同一文件夹或者不同文件路径下的多个Excel文件合并到一个Excel文件中。大概实现思路是:
- 首先创建一个列表,用于存储所有需要合并的Excel文件。
- 然后遍历列表中的文件并将它们都载入到一个临时的工作簿中。
- 最后遍历临时工作簿中的所有工作表,然后通过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()
参考链接:
使用Python合并多个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使用openpyxl读写excel文件
Python使用openpyxl读写excel文件 这是一个第三方库,可以处理xlsx格式的Excel文件.pip install openpyxl安装.如果使用Aanconda,应该自带了. 读取E ...
- 【转发】Python使用openpyxl读写excel文件
Python使用openpyxl读写excel文件 这是一个第三方库,可以处理xlsx格式的Excel文件.pip install openpyxl安装.如果使用Aanconda,应该自带了. 读取E ...
- python合并多个excel
前言 1.工作中,经常需要合并多个Excel文件.如果文件数量比较多,则工作量大,易出错,此时,可以使用Python来快速的完成合并. 2.使用方法:将需要合并的多个Excel文件放到同一个文件夹下, ...
- 把当前文件夹的xlsx或xls文件合并到一个excel文件中的不同sheet中
把当前文件夹的xlsx或xls文件合并到一个excel文件中的不同sheet中步骤如下: 把需要合并的文件放到同一个文件夹 在该文件夹中新建一个excel文件 打开新建的excel问价,把鼠标放到sh ...
- 批处理快速合并多分Excel文件并将指定列的数据去重复
1.批处理快速合并多个excel文件方法: 新建一个.txt文本文件,就命名为合并.txt吧. 而后开启文件,复制以下代码到文件中: @echo off E: cd xls dir copy *.cs ...
- python合并多个txt文件
python合并多个txt文件 #合并一个文件夹下的多个txt文件 #coding=utf-8 import os #获取目标文件夹的路径 filedir = os.getcwd()+'\\数据' # ...
- python xlrd,xlwt 读写excel文件
python 读excel文件,需要xlrd库.下载地址:https://pypi.python.org/pypi/xlrd python 写excel文件,需要xlwt库.下载地址:https:// ...
- python 模块openpyxl读excel文件
使用openpyxl模块来读取excel.要注意openpyxl读不再支持旧的xls格式. 先看一下操作前的excel是什么样子吧.对了,现在只支持xlsx格式的excel读取 我现在想在第三行插入3 ...
- python利用xlrd读取excel文件始终报错原因
1.代码按照网上百度的格式进行书写如下: 但运行后,始终报错如下: 百度了xlrd网页: 分明支持xls和xlsx两种格式的文件,但运行始终报错. 最后找到原因是因为我所读取的文件虽然是以.xls命名 ...
随机推荐
- 2023HWS_RE复现
2023HWS_RE复现 参考wp:https://oacia.cc/hws-2023/ Android 参考这篇文章:https://www.52pojie.cn/thread-1680984-1- ...
- 震坤行根据ID取商品详情 API
item_get-根据ID取商品详情 注册开通 zhenkunhang.item_get 公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中) se ...
- 「codeforces - 687D」Dividing Kingdom II
link. 好题啊. 首先有一个类 kruskal 暴力,就是对于每一个询问,把所有边按权值大小排降序,第一个加进去成为奇环的边就是答案.注意我们不需要关注偶环长成什么样子,所以我们实际上维护的是一棵 ...
- 几句话了解元数据(Metadata)
元数据就是关于数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置.历史数据.资源查找.文件记录等功能. 要理解元数据,首先要知道&quo ...
- 文心一言 VS 讯飞星火 VS chatgpt (113)-- 算法导论10.2 5题
五.用go语言,使用单向循环链表实现字典操作 INSERT.DELETE 和 SEARCH,并给出所写过程的运行时间. 文心一言: 在Go语言中,我们首先需要定义一个Node结构体来表示单向循环链表的 ...
- 每天5分钟复习OpenStack(三)
每天5分钟复习OpenStack(三) 为什么要拉起kvm 虚拟机要熟悉这些操作? 作为一个运维工程师,将来有大量的时间是在制作镜像,镜像的制作就是在kvm虚拟化环境拉起kvm 管理的虚拟机的过程,安 ...
- 如何为你的WSL2更换最新的6.5.7kernel
1.如果你像我一样,喜欢折腾你的 WSL2 ,这里是安装内核 6.X 的方法. 2.这是一个坏主意,可能会导致系统不稳定.数据损坏和其他问题.也可能会没事的,但不要怪我. Arch linux的wsl ...
- OpenCv4.6.0交叉编译ARM(aarch64)平台库
1.下载交叉编译工具:gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu 2.opencv官网下载opencv4.6.0源码,opencv官网下载ope ...
- IPv4:根据CIDR显示地址范围
最近遇到一个很有意思的点,于是就记录下来. CIDR一般是由IP地址和子网掩码组成,即 IP地址/子网掩码 格式. 子网掩码表示前面地址中的前多少位,为网络位,后面部分代表主机部分.例如:192.16 ...
- 实时计算Flink+实时数仓Hologres
阿里云培训:https://developer.aliyun.com/learning/course/807/detail/13885?accounttraceid=d2070f0a9edb471c9 ...