Excel:快速合并多張表格或多個檔案(作業簿)的資料(附Python代碼)
現實作業中經常遇到將零散的原始資料合并統計的作業要求,如月度統計或年度統計等,原始資料的收集大多是按時間(如日期或小時)進行獲取記錄的,即每1天或1個時間段就會產生1張Excel的資料表格,當要進行月度或年度資料分析時,傳統方法就需要花費不少的時間進行原始資料的合并,俗稱“copy_paste"操作,下面的方法是應用Python代碼實作快速合并多張表格的資料的任務 – "一鍵成型“,大大提高辦公室的作業效率:
流程分析:
- 收集資料源檔案夾中的資料檔案名稱(workbook_names)
- 建立新的資料匯總檔案 – 用于收集并保存所有的資料
- 打開并讀取Excel檔案,收集每個資料檔案中的表格名稱(sheet_names)
- 按表格將資料轉換為dataframe,并匯總在一起
- 將dataframe轉為Excel檔案
- 檢查資料匯總的結果
原始資料的情況:
有2個資料集:Data_1和 Data_2,每個檔案有3個表格

Python代碼:
import xlrd
import pandas as pd
import os
# 1. 收集資料源檔案夾中的資料檔案名稱(workbook_names)
file_dir = "d:/原始資料集"
file_list = os.listdir(file_dir)
print("合并的檔案包括:", file_list)
# 2. 建立新的資料匯總檔案 -- 用于收集并保存所有的資料
new_file = "d:/匯總資料.xlsx"
new_list = []
sheet_num = 0
# 3.打開并讀取Excel檔案,收集每個資料檔案中的表格名稱(sheet_names)
for file in file_list:
file_path = os.path.join(file_dir, file)
wb = xlrd.open_workbook(file_path)
sheet_names = wb.sheet_names()
sheet_num += len(sheet_names) #計算合并的表格的總數
# 4.按表格將資料轉換為dataframe,并匯總在一起
for sn in sheet_names:
dataframe = pd.read_excel(file_path, sheet_name=sn, header=0)
new_list.append(dataframe)
# 5. 將datafram轉為excel
df = pd.concat(new_list)
df.to_excel(new_file, sheet_name="Summary")
# 6.檢查資料匯總的結果
print("合并的表格數量:", sheet_num)
print("資料匯總表已生產,請檢查!")
程式運行結果:

資料匯總表格(新生產的):

問題解決了!
溫馨提示:
本博客測驗的是xls檔案,如果是對于xlsx檔案,建議使用openpyxl來操作,關鍵替換代碼如下:
import openpyxl
# 讀取excel檔案和提取檔案中的作業表名稱
wb = openpyxl.load_workbook(file_path)
sheet_names = wb.sheetnames
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/254901.html
標籤:其他
