在处理包含相似数据结构的多个 excel 文件时,合并这些文件可以为数据分析和报告提供全面的视图。通过将不同来源的数据合并在一起,您可以获得一个更完整和综合的数据集,这有助于做出更准确的决策。本文将介绍如何使用 spire.xls for python 库在 python 中将多个 excel 文件合并为一个文件。
安装 spire.xls for python
此教程需要 spire.xls for python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 vs code 中。
pip install spire.xls
如果您不确定如何安装,请参考: 如何在 vs code 中安装 spire.xls for python
python 将多个 excel 工作簿合并为一个
spire.xls for python 提供的 workbook.worksheets.addcopy() 方法可将多个工作簿中的工作表复制到一个新的工作簿中,从而实现合并多个 excel 工作簿。具体步骤如下:
- 将要合并的 excel 工作簿添加到列表中。
- 初始化 workbook 对象,创建新工作簿并清除其默认工作表。
- 初始化一个临时 workbook 对象。
- 遍历列表中的所有工作簿。
- 使用 workbook.loadfromfile() 方法将工作簿加载到临时工作簿对象中。
- 遍历临时工作簿中的所有工作表,然后使用 workbook.worksheets.addcopy() 方法将临时工作簿中的每个工作表复制到新创建的工作簿中。
- 使用 workbook.savetofile() 方法保存生成的工作簿。
- python
from spire.xls import *
from spire.xls.common import *
# 将要合并的excel工作簿添加到列表中
files = []
files.append("文档1.xlsx" )
files.append("文档2.xlsx")
files.append("文档3.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()
python 将多个 excel 工作表合并为一个
要合并多个 excel 工作表,可以使用 cellrange.copy(destrange) 方法将这些工作表中的数据范围复制到单个工作表中。具体步骤如下:
- 初始化 workbook 对象,并使用 workbook.loadfromfile() 方法加载 excel 工作簿。
- 使用 workbook.worksheets[sheetindex] 属性获取需要合并的两个工作表。请注意工作表索引是从 0 开始的。
- 使用 workheet.allocatedrange 属性获取第二个工作表中的数据范围。
- 使用 worksheet.range[rowindex, columnindex] 属性指定第一个工作表中的目标范围。请注意,行和列索引都是从 1 开始的。
- 使用 cellrange.copy(destrange) 方法将第二个工作表的数据范围复制到第一个工作表的目标范围。
- 从工作簿中删除第二个工作表。
- 使用 workbook.savetofile() 方法保存生成的工作簿。
- python
from spire.xls import *
from spire.xls.common import *
# 创建workbook对象
workbook = workbook()
# 加载excel文件
workbook.loadfromfile("文档.xlsx")
# 获取第一张工作表
sheet1 = workbook.worksheets[0]
# 获取第二张工作表
sheet2 = workbook.worksheets[1]
# 获取第二张工作表中的数据范围
sourcerange = sheet2.allocatedrange
# 在第一张工作表中指定目标范围
destrange = sheet1.range[sheet1.lastrow 1, 1]
# 将第二张工作表中的数据范围复制到第一张工作表中的目标范围
sourcerange.copy(destrange)
# 移除第二张工作表
sheet2.remove()
# 保存结果文件
workbook.savetofile("合并工作表.xlsx", excelversion.version2016)
workbook.dispose()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。