辦公自動化2:使用Python合並不同文件夾中的多個Excel文件


-- coding: utf-8 --

"""
Spyder 編輯器

這是一個臨時腳本文件。

來源網絡資料,僅供學習使用。

"""
##############實例2_使用Python合並不同文件夾中的多個Excel文件######################
import os #用於獲取文件路徑
import xlrd #用於一次讀取Excel中的整行數據
from openpyxl import load_workbook #用於寫入數據

file_path="data" # 文件所在文件夾

1.獲取路徑下所有文件,並存入列表

pathss=[] # 存儲文件夾內所有文件的路徑(包括子目錄內的文件)
for root, dirs, files in os.walk(file_path):
path = [os.path.join(root, name) for name in files]
pathss.extend(path)

2.只提取出需要的Excel文件的路徑

files_for_merge=[]
for i in pathss:
if 'Tracker-sub' in i: #因文件夾內還有存儲圖片的Excel文件,需排除
#路徑下文件如FM Reduction Activities image- A.xlsx,
#和FM Reduction Activities Tracker-sub A.xlsx
files_for_merge.append(i)

3.讀取各個Excel中的數據,並存入列表

data=[]
for i in files_for_merge:
wb=xlrd.open_workbook(i) #按相應路徑讀取工作簿
ws=wb.sheet_by_index(0) #選取工作表
for j in range(10,ws.nrows): #這里文件1-9行是空白,第10含是標題,11含才是信息,計算機編號是10
data.append(ws.row_values(j)) #讀取整行數據,並存入列表

4.匯總數據到主Excel文件

打開路徑下的匯總表。

wb_main=load_workbook(file_path+"/FM Reduction Activities Tracker-main.xlsx") #file_path前面已指定路徑名,打開需要寫入數據的文件
ws_main=wb_main['Raw Findings'] #選取需要寫入數據的工作表
for row in range(3,len(data)+3):
for col in range(1,18):
ws_main.cell(row=row,column=col,value=data[row-3][col-1]) #寫入數據
wb_main.save(file_path+"/FM Reduction Activities Tracker-main.xlsx") #保存數據
print("程序執行完成!")

print("ok")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM