办公自动化2:使用Python合并不同文件夹中的多个Excel文件
Posted Bison2020
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了办公自动化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")
以上是关于办公自动化2:使用Python合并不同文件夹中的多个Excel文件的主要内容,如果未能解决你的问题,请参考以下文章
办公自动化18-将多个excel表中的多个sheet合并到一个excel中的一个sheet