youpc529 发表于 2019-12-19 22:07

自动汇总所有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('更新完毕!')

```

youpc529 发表于 2019-12-23 13:07

wdxm2008 发表于 2019-12-23 11:14
我建议这种多人协同的表格类放在在线协同来填,一个是直接填完自动保存,一个还能看到哪些人修改了什么数据 ...

是的,有使用过金山在线协作,不过有些情景不适合,如HR部门需要汇总的各部门或员工的信息,谢谢!

fineconey 发表于 2020-9-10 07:53

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'

怎么办?

miqi1314 发表于 2019-12-19 22:13

学习了,赞!

戰龍在野 发表于 2019-12-19 22:17

牛B,高手,學習學習了

twostudy 发表于 2019-12-19 22:21

很有想法,学习了思路,以后应该能用上!

lzspain 发表于 2019-12-19 23:00

奈何自己看不懂,只能说一句,NB!

ilpj 发表于 2019-12-19 23:05

python和vba哪个效率高??

rohan18 发表于 2019-12-19 23:08

学习着的时间过得也是飞快,但是感觉没有太多的办法。

thwxj 发表于 2019-12-19 23:17

这个功能我用过,但代码好象比你这个简单些

奇思多妙想 发表于 2019-12-19 23:43

谢谢分享,打开了思路。

yyestcat 发表于 2019-12-19 23:57

厉害了,厉害了。
页: [1] 2 3 4 5
查看完整版本: 自动汇总所有excel表的数据到一张总表上