使用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庫教程示例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章