python合并多个EXCEL表

Python020

python合并多个EXCEL表,第1张

在日常工作中经常回用到数据分析与统计工作,而在实施数据分析之前,最为最要的就是数据的搜集、整理工作。这里介绍一下多个相同格式的excel合并的处理。如果在excel文件表比较少时,手工合并还可以应付,当几十个几百个甚至更多的表时,手工合并效率会非常低,于是让计算机自动合并处理,帮助我们完成工作就显得非常有必要。

比如,在“2019年集团大学生招聘”下有两个表格,想要实现的是将这两个表格数据合并。

各个表中的数据格式如下图:

结果:

有时候表格存放在文件夹下,现在需要将不同文件夹下的表格合并,此时需要对程序进行简单的修改。

文件目录结构如下:

在此之前需要先了解一下os模块中的walk方法:

结果:

注意:os.walk()方法,它可以查询到目录下不同文件夹中的文件。其中,x代表的是文件路径,y代表的是目录下的文件夹,z代表的是目录下的文件。

结果:

最后,需要注意,以上只是一个简单的程序,对于数据量不是很大的场景,可以放心使用。但当数据量非常大时,程序还需要进一步优化,因为程序是将所有的数据保存在一个列表中,最后再一次性写入excel表中,这里需要考虑excel版本是否支持大数据量的写入,另外,也要考虑程序资源消耗的问题,内存可能不足。

    先来看看openpyxl库的官方说明:openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files.这个库是针对2010 及以上Excel文档的,笔者测试过2007是会报错的。

    Python使用openpyxl库在实际的应用中可以提高效率。本文分享测试两个案例。

1、修改统计文档数据  

    读取表中数据,计算平均分和总分,并且保存到最后两列,最后再写入到文件中。

2、多文档合并

    这个在实际的生活中可是大有用处。试想一下现在有很多报名表,需要将报名表集中在一起,那么只能一个个打开文档复制粘贴,太低效率了。Python使用openpyxl库就可以很快的完成将目录下的.xlsx文件合并在一起。

    get_all_xlsx_files函数的作用是找到目录下的xlsx文件,并按照文件名进行排序;

    merge_xlsx_files函数的作用是通过获取表中数据,然后调用ws.append函数添加到汇总表的后面。

    main主函数执行合并操作,并写入汇总文件中。

    合并效果如下: