本文主要是介绍python合并多个excel表格文件为一个或者放到不同的sheet中,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
场景:许多excel文件格式和内容的标题都一样,需要将这些表格合并到一起,有5个表,每个表10行的话,合并后就是50行的数据
方案1:文件放到一个目录中遍历所有文件然后进行数据合并-合并到不同sheet
目录 d:/表格存放/ 下存放了5个excel文件
要求输出到d盘根目录下面 ‘合并后表格.xlsx’
import os
import pandas as pd#定义一个函数读取文件路径
def file_name_paths(path='D:/UP', find=None, case_sensitive=False):'''目录下的所有文件,包括子目录,返回值为多个文件的完整路径列表path: 路径find:None:关闭过滤(搜索功能)'.csv' 过滤.csv的文件case_sensitive :区分大小写 默认为不区分'''path_collection=[]for dirpath,dirnames,filenames in os.walk(path):for file in filenames:fullpath=os.path.join(dirpath,file)if '~$' not in file.upper():if case_sensitive:if find:if find in file:path_collection.append(fullpath)else:path_collection.append(fullpath)else:if find:if find.upper() in file.upper():path_collection.append(fullpath)else:path_collection.append(fullpath)else:passreturn path_collection
#读取要合并的目录下的文件,如果里面有其他非.xlsx文件不要合并:file_name_paths('d:/表格存放',find='.xlsx')
file_name_list = file_name_paths('d:/表格存放')#定一个一个空的df,用来存放所有的表格
summary_table = pd.DataFrame()for file_name in file_name_list: data_temp = pd.read_excel(file_name) #循环读取每个表格summary_table = summary_table.append(data_temp) #添加到上面的空的df中summary_table.to_excel('d:/合并后表格.xlsx',index=False) #导出
方案2:文件放到一个目录中遍历所有文件然后进行数据聚合,将不同文件放到excel中的不同sheet里面
file_name_list = file_name_paths('d:/表格存放')writer = pd.ExcelWriter('d:/合并后表格2.xlsx')#创建一个表
for file_name in file_name_list: data_temp = pd.read_excel(file_name) #循环读取每个表格data_temp.to_excel(writer,os.path.splitext(os.path.basename(file_name))[0],index=False) #将每个表分别放到以名称命名的sheet中
writer.save() #保存d:/合并后表格2.xlsx
这篇关于python合并多个excel表格文件为一个或者放到不同的sheet中的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!