使用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()
参考链接: