用 Python 整理 Excel 表格
- 思路
- xlrd和xlsxwriter
- 读取所有xls和xlsx表格
- 数据处理
- 实例
- 回顾
- 代码下载
一直都是拿Python来玩,今天正经一回,解决下好友的需求:
需求不复杂,读取文件夹中所有xls或xlsx表格文件,遍历每一张sheet单页,汇总所需要的数据生成新的xlsx表格。
思路
首要解决的就是xls和xlsx表格文件的读取问题。读取到数据后,对数据进行筛选重组,再写入新的xlsx文件中。
实现了单个表格的读取和写入,接下来就再添加遍历文件夹、筛选xls和xlsx格式文件的实现就大功告成了。
xlrd和xlsxwriter
xlrd是Python语言中,用来读取Excel的扩展工具。先安装xlrd后导入,代码中直接调用即可。
原本对应xlrd库的是xlwt库,但是xlwt不争气,只能写xls不能写xlsx格式,所以这里选用xlswriter模块。
读取所有xls和xlsx表格
遍历文件夹,选用os模块中的 os.walk(),返回路径、子文件夹和路径下的文件,通过对文件名后缀的筛选,将所有.xls和.xlsx文件添加到特定列表中供统一读取
数据处理
通过xlrd读取到的每行数据,代码中会被存到一个个list中,通过对python list元素的操作,我们完成对目标数据的加工和获取。
实例
由于朋友的表格数据涉及隐私,这里我拿公开的2019年和2018年国家公务员考试职位表来演示:
2018.xlsx
2019.xls
两份表格中有2万多条信息。我们从中选取“部门名称”、“招考职位”、“职位简介”、“招考人数”、“专业”及“学历”等栏目,将所有这六栏的数据汇总到同一张新xlsx表格中,并注明数据来源。
运行代码,效果不错,秒级响应,共汇总了25802条数据:
生成表格开头
生成表格结尾
回顾
回顾整个过程,思路没有问题,在接触每个模块后也作出了恰当的调整。实例中采用的表格数目很小、格式也很规范,所以代码也直接明了,方便展示代码思路和过程。
涉及到成百上千及更大量级的表格文件时,各种格式不规范导致的头疼问题就会出现了,这就要求更精确地数据加工和处理。不过也不慌,可以借助更便捷的工具和模块来进行处理,前人栽树、后人乘凉在Python里面可是很爽的,后续也会分享这方面的学习和应用。
代码下载
百度网盘链接:https://pan.baidu.com/s/1TLVs8sgzGEZJ2F5_XNjrnQ 提取码:y21f
GitHub链接:
https://github.com/pengfexue2/excelRelated.git
代码体现大致思路,稍加修改就可以解决很多基础的表格整理问题。