900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Python 多excel工作簿 多sheet工作表合并

Python 多excel工作簿 多sheet工作表合并

时间:2018-08-01 15:06:37

相关推荐

Python 多excel工作簿 多sheet工作表合并

项目场景:

遇到需要多个excel工作簿、多sheet工作进行合并,但又不想买WPS会员和VBA,就可以借助python进行一个简单的程序编写从而解决。

问题描述

将以上三个工作簿,及其对应工作表表进行对应合并。

所需要的第三方库:

importpandasaspd

importxlrd

importos

importxlwt

代码:

#确定文件路径

path="合并工作表\\"

xlsx_names=[xforxinos.listdir(path)ifx.endswith(".xlsx")]

#print(xlsx_names)

#获取工作簿名称

xlsx_names1=xlsx_names[0]

aa=path+xlsx_names1

#print(xlsx_names1)

#print(aa)

#first_file_fh=pd.read_excel(aa,engine='openpyxl')

#print(first_file_fh)

first_file_fh=xlrd.open_workbook(aa)

#获取工作表名称

sheet_names=pd.ExcelFile(aa).sheet_names

#print(first_file_sheet)

#无需合并的sheet名称

no_conbat=["无需合并"]

#加载writer

writer=pd.ExcelWriter("合并成功文件.xlsx")

#循环合并

forsheet_nameinsheet_names:

#print(sheet_name)

df=None

#按EXCEL名循环

forxlsx_nameinxlsx_names:

num=0

sheet_na=pd.ExcelFile(path+xlsx_name).sheet_names

#print("sheet_na:",sheet_na)

ifsheet_nameinsheet_na:

ifsheet_nameinno_conbatandnum!=0:

continue

_df=pd.read_excel(path+xlsx_name,sheet_name=sheet_name,header=0)

#print(df)

ifdfisNone:

df=_df

else:

df=pd.concat([df,_df],ignore_index=True)

else:continue

#print(df)

df.to_excel(excel_writer=writer,sheet_name=sheet_name,index=False)

print(sheet_name+"保存成功!共%d个,第%d个。"%(len(sheet_names),num))

num+=1

writer.save()

writer.close()

结果展示:

代码运行结束后会自动生成“合并成功文件.xlsx”

合并成功

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。