吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11198|回复: 40
收起左侧

[Python 转载] 自动汇总所有excel表的数据到一张总表上

[复制链接]
youpc529 发表于 2019-12-19 22:07

场景:发出一个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[i]
            sh_zong[j].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('更新完毕!')

免费评分

参与人数 9吾爱币 +5 热心值 +8 收起 理由
fineconey + 1 + 1 谢谢@Thanks!
hysfslh + 1 谢谢@Thanks!
yjn866y + 1 + 1 谢谢@Thanks!
放假几天 + 1 + 1 谢谢@Thanks!
blue989123 + 1 谢谢@Thanks!
long9788523 + 1 用心讨论,共获提升!
ilpj + 1 用心讨论,共获提升!
一个兽医 + 1 + 1 我很赞同!
twostudy + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

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

是的,有使用过金山在线协作,不过有些情景不适合,如HR部门需要汇总的各部门或员工的信息,谢谢!
fineconey 发表于 2020-9-10 07:53
[Asm] 纯文本查看 复制代码
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: [Errno 2] 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
厉害了,厉害了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 01:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表