一、需求
将多个excel文件中的多个sheet表合并到一个工作簿内,参考例子如图:
二、处理方式
1、通过os模块遍历文件,提取获取xlsx文件的路径和文件名; 2、通过pandas模块的ExcelWriter函数,实现excel文件的追加写入; 注: 1、python版本 3.8
三、代码实现
import pandas as pd
import os
ls = []
for dirpath,dirname,files in os.walk(r'D:\pythontest\20220705'):
for file in files:
if file.endswith('xlsx'):
# 为防止文件与代码不在同一个路径时出错,组合绝对路径
ls.append(dirpath+'\\'+file)
# pd.ExcelWriter 函数可以追加写入
sheetname_list = []
with pd.ExcelWriter(r'D:\pythontest\20220705\test.xlsx',mode='w+') as xlsx:
for file in ls:
df = pd.read_excel(file,sheet_name=None)
# 获取excel 的表名称
sheet_names = df.keys()
# 循环获取每个表的内容,并写入文件中
for sheet_name in sheet_names:
if sheet_name in sheetNamelist:
name = sheet_name+'_1'
else:
name = sheet_name
sheetname_list.append(name)
df1 = pd.read_excel(file,sheet_name=sheet_name)
df1.to_excel(xlsx,sheet_name=name,index=False)