excel多表数据合并一直是excel的痛点,面对收集来的上百张表格,如果用户需要一个一个打开复制粘贴耗时耗力,容易出差错。本人集团工作中面对这种问题一直很无力。传统办法是通过vba进行编程实现。但使用python可以更优雅的处理此类问题,而且移植、复用 扩展均可以简单完成。
需求:存在多个excel表,每个表存在多个sheet,需要将某一张表中的某个sheet内容明细归集在一起。
开发语言python3,系统win10 64位
附件内容:excelSummary.py为开发源代码,数据归集小程序1.0.rar为打包好的小程序内有配置文件。
实现的功能点:
1、用户可以通过修改配置,可以实现 1.1控制聚合表头所在行,解决用户表头不在第一行的情况。1.2 模糊匹配sheet名称,解决sheet名称不规范问题,如果直接获取第一个可以直接输入*。 1.3控制明细表格所在路径。1.4 用户可以直接填写列名称控制获取对应类,过滤无用列。
2、获取明细文件夹下的xls或者xlsx文件 填入csv文件中,在csv中是实现增行。注意再一次执行 如果不删除《数据归集.csv》文件,数据再次添加行数,重新执行时注意删除。
3、由于最终填入的csv文本格式,而非xls格式,这样对内存消耗很小,可以支撑较大数据量的数据归集,也方便excel或者其他程序再处理。
4、通过pyinstaller 打包成exe, win10 64位用户解压后直接双击exe可直接运行,无需安装python3,通过list和for循环实现,程序文件较小携带方便。
局限:只做到可多表格中的一个sheet内容 合并增行。还有一种业务行场景要求增列,这个以后试试实现。
如果有优化建议 bug或者给问题请留言。(新手程序注释不到位,以后有时间再搞搞,有需要讲解的可以留言)。我会继续优化或者扩展这个小程序。比如这个是增行版本,以后可以出增列版本或者单表多sheet合并之类的。
原创内容,转载请注明。