当前位置: 首页 > 科技观察

补充文章:盘点六种使用Python批量合并同一文件夹下所有子文件夹下Excel文件中所有Sheet数据的方法

时间:2023-03-20 22:16:32 科技观察

一、前言大家好,我是Python进阶。前阵子给大家分享了一篇Python自动化文章:教你用Python轻松将Excel拆分成多个CSV文件,教你4种方法用Python批量合并多个Excel和Sheet,然后在Python进阶交流群一位名叫【玩猫】的粉丝遇到了问题。她有很多Excel工作表,多个excel中有多个工作表。现在她需要合并这些Excel文件。使用上面链接对应的方法进行合并,发现只能合并Sheets,其他的不能合并。这确实是个问题。诚然,打开再复制粘贴是可行的,但这种方法费时费力,而且也容易出错。也可以手动处理多个文件。如果有几十个甚至上百个,你就瞎了,但是这个问题是针对Python的。就这么简单,一起来看看吧!2.说明前天发了一篇文章解决这个问题,盘点了4种使用Python批量合并同一文件夹下所有子文件夹下Excel文件中所有Sheet数据的方法。数了4种方法,经过测试完全可行。这篇文章很受欢迎,评论和点赞真的很好。今天继续在这里补充两个方法。高手在人间,多亏【??(这是月球的背面)]和[韩峰]他们的想法和代码。3、项目实施前提供了四种方法,这里不再赘述。可以戳本文自行学习。源代码在文章中。下面盘点4种使用Python批量合并同一文件夹所有子文件夹所有Sheet数据在Excel文件中的方法。下面我再介绍另外两种方法,一起来看看吧!1、方法5该方法由【韩风】分享,代码如下。#-*-coding:utf-8-*-importpandasaspdimportospath=r'E:\PythonCrawler\python_crawler-master\MergeExcelSheet\file\777'file_list=[]forroot,dirs,filenameinos.walk(path):forfileinfilename:file_list。append(path+'\\'+file)#The_All_data=pd.DataFrame()All_data=pd.DataFrame()forProwlerinfile_list:ereader=pd.ExcelFile(Prowler)#读入文件名one_sheet_name=ereader.sheet_names#读入文件所有sheet的名称forSheet_Prowlerinone_sheet_name:All_sheet_data=pd.read_excel(ereader,sheet_name=Sheet_Prowler)#读取文件名中所有sheet的数据temp=pd.concat([All_data,All_sheet_data])All_data=pd.DataFrame(temp)#montage=pd.concat([The_All_data,All_sheet_data])#拼表:将一张表中所有sheet的数据放入汇总表#The_All_data=pd.DataFrame(Montage)#将有新数据的表赋给总表下次在本表末尾领取。print(All_data)All_data.to_csv(r'E:\PythonCrawler\python_crawler-master\MergeExcelSheet\file\777\The_All_data.csv')以上代码可以运行,功能实现没有问题。其实逻辑和之前的方法是一样的,只是变量命名方面看起来有点不舒服。2.方法6此方法由[??(这是月亮的背面)],代码如下。#-*-coding:utf-8-*-frompathlibimportPathimportpandasasspdpath=Path(r'E:\PythonCrawler\python_crawler-master\MergeExcelSheet\file\888')pd.concat([pd.concat(pd.read_excel(i,sheet_name)=None))foriinpath.glob([!~]*.xls*")],ignore_index=True).to_excel("result.xlsx",index=False)print('合并完成!')如果没有前面几个这方面的伏笔,直接看这段代码就可以了。相信大部分都是直接晕了。我将它分解为每个人都可以理解。其实确实是一行代码,可以在上面的聊天截图中看到,真是精辟!至于效果展示,这里就不做贴图了,个人测试比较好用。说到这里,我想多说几句。有时候看别人的代码,确实可以运行。如果我自己拿,我可能跑不起来,所以很迷茫。我遇到的问题其实是模块少。安装xlrd后,可以正常运行。4.小结本文从实际工作出发,基于Python编程,介绍了6种实现批量合并同一文件夹下所有子文件夹下的Excel文件中所有Sheet数据的方法,减少了很多复制粘贴的麻烦每个人。既省时省力,又不容易出错。代码不多,循环加法有点绕。如果你想一想,你就会明白。有不懂的可以留言提问。让我们一起学习进步。有想法的朋友也可以把文中的代码打包做成exe可执行的小软件,打包发给别人,也能赚取小费。关于打包教程这里就不赘述了。欢迎来到:你必须记住的三个Pyinstaller打包命令——用Python打包exe。