比如,在“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主函数执行合并操作,并写入汇总文件中。
合并效果如下: