自动汇总所有excel表的数据到一张总表上
场景:发出一个excel模板要求相关员工(人数非常多)根据模板提报数据,汇总的时候需要一个个表格打开,然后复制黏贴数据到汇总表上,费时费力。或者导入VBA模块。既然学了python,就把python用上了,一段代码自动完成汇总。
```
import os
from openpyxl import load_workbook
#更新数据函数
def update_sta(filename):
wb_fen=load_workbook(filename)
wb_zong=load_workbook('总表.xlsx')
sh_fen=wb_fen['shuju']
sh_zong=wb_zong['shuju']
maxrow_fen=sh_fen.max_row
maxrow_zong=sh_zong.max_row
maxcolumn_fen=sh_fen.max_column
for m in range(2,maxrow_fen+1):
for n in range(97,97+maxcolumn_fen)
n=chr(n)
i='%s%d'%(n,m)
j='%s%d'%(n,m+maxrow_zong-1)
cell_fen=sh_fen
sh_zong.value=cell_fen.value
wb_zong.save('zong.xlsx')
print('更新的文件为:',filename)
wb_fen.close()
wb_zong.close()
#读取文件夹中提交的所有数据表并更新
path=os.listdir(r'C:\Users\Desktop\excelautomation')#分表/汇总表都在一个文件夹下
for p in path:
if p !='总表.xlsx' and p !='excel表汇总.py':
update_sta(p)
print('更新完毕!')
``` wdxm2008 发表于 2019-12-23 11:14
我建议这种多人协同的表格类放在在线协同来填,一个是直接填完自动保存,一个还能看到哪些人修改了什么数据 ...
是的,有使用过金山在线协作,不过有些情景不适合,如HR部门需要汇总的各部门或员工的信息,谢谢! D:\Python38\python.exe E:/_Python_/自动汇总所有excel表的数据到一张总表上.py
Traceback (most recent call last):
File "E:/_Python_/自动汇总所有excel表的数据到一张总表上.py", line 30, in <module>
update_sta(p)
File "E:/_Python_/自动汇总所有excel表的数据到一张总表上.py", line 6, in update_sta
wb_fen=openpyxl.load_workbook(filename)
File "D:\Python38\lib\site-packages\openpyxl\reader\excel.py", line 313, in load_workbook
reader = ExcelReader(filename, read_only, keep_vba,
File "D:\Python38\lib\site-packages\openpyxl\reader\excel.py", line 124, in __init__
self.archive = _validate_archive(fn)
File "D:\Python38\lib\site-packages\openpyxl\reader\excel.py", line 96, in _validate_archive
archive = ZipFile(filename, 'r')
File "D:\Python38\lib\zipfile.py", line 1216, in __init__
self.fp = io.open(file, filemode)
FileNotFoundError: No such file or directory: '12月份中高管理层工作计划检查记录.xlsx'
怎么办? 学习了,赞! 牛B,高手,學習學習了 很有想法,学习了思路,以后应该能用上! 奈何自己看不懂,只能说一句,NB! python和vba哪个效率高?? 学习着的时间过得也是飞快,但是感觉没有太多的办法。 这个功能我用过,但代码好象比你这个简单些 谢谢分享,打开了思路。 厉害了,厉害了。