使用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命名 ...
随机推荐
- 1、MyBatis简介
1.1.MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁 移到了Google Code. ...
- 混合开发模式是否可以在App备案制度下突围
网站 ICP 备案已施行了很久,我们也非常清楚必须在进行 ICP 备案后,网站才能在大陆范围合法运营,并且用户可以通过域名正常访问网站. 但是月初出了新规,明年起,国内的 App 也要像网站一样进行备 ...
- Flutter系列文章-Flutter应用优化
当涉及到优化 Flutter 应用时,考虑性能.UI 渲染和内存管理是至关重要的.在本篇文章中,我们将通过实例深入讨论这些主题,展示如何通过优化技巧改进你的 Flutter 应用. 代码性能优化 1. ...
- LSTM推导
LSTM推导 forward propagation def lstm_cell_forward(xt, a_prev, c_prev, parameters): """ ...
- 关闭Google"阻止了登录尝试"方法, 其他设备也能登录Gmail等谷歌服务
首先登录谷歌账户, 访问 https://www.google.com/settings/security/lesssecureapps 把"不够安全的应用的访问权限" 启用打勾 ...
- Python基础语法--课程笔记
Smiling & Weeping ----我的心是旷野的鸟,在你的眼睛里找到了它的天空 定义和使用类: 1.声明类: class类名: 成员变量,成员函数 2.定义类的对象: 对象名 = 类 ...
- Solution -「POJ 1322」Chocolate
Description Link. 包里有无穷多个巧克力,巧克力有 \(c\) 种颜色,每次从包里拿出不同颜色巧克力的概率都是相等的,桌面的巧克力不允许颜色相同,若某次拿出的巧克力与桌上的巧克力颜色相 ...
- Atcoder Regular Contest 167
卡 B 下大分了. A. Toasts for Breakfast Party 发现题意是让方差尽可能小,就是让 \(A\) 里的值尽可能接近. 所以从小到大排个序,把 \(A_{N,\dots,N- ...
- 记一个 Android 14 适配引发的Android 存储权限问题
一.bug 背景 项目中有下面这样一段代码,在 Android T 版本运行正常,现在适配到 Android U 上之后,运行时 crash 了.... ... values.put(MediaSto ...
- webpack配置局域网访问项目
要配置webpack允许局域网访问项目,你需要做以下几个步骤: 1. 在webpack配置文件中,找到devServer选项,并设置其属性`host`为`0.0.0.0`.这将允许其他设备通过局域 ...