办公自动化2:使用Python合并不同文件夹中的多个Excel文件 -- coding: utf-8 -- 来源网络资料,仅供学习使用。 1.获取路径下所有文件,并存入列表 2.只提取出需要的Excel文件的路径 3.读取各个Excel中的数据,并存入列表 4.汇总数据到主Excel文件 打开路径下的汇总表。

"""
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")