需求描述
在处理Excel 自动化时,财务部门经常有一个繁琐的场景,需要读取分发的Excel文件内容复制到汇总Excel文件对应的单元格内,如下图所示:

这种需求可以延申为,财务同事制作一个模板,将模板发送给各员工,财务同事需收取邮件将员工填写的excel文件下载到本机,再类似通过vlookup函数,把对应的值映射过来。这种繁琐的操作,可以用Python 几行代码解决。
数据准备
1. Excel 文件夹
D:\Pandas\ExcelData
如下文件:

其内容如下:

2.汇总文件夹

其内容如下:

功能实现
'''
@Project :ExcelDemo
@File :TestUpdateExcel.py
@IDE :PyCharm
@Author :marshal
@Date :2024/6/5 19:35
'''
import os
import openpyxl
# 读取分发文件夹下的所有Excel文件
excel_folder = r'D:\Pandas\ExcelData'
excel_files = [f for f in os.listdir(excel_folder) if f.endswith('.xlsx')]
# 读取汇总Excel文件
summary_file = r'D:\Pandas\汇总Excel\主表项目属性表.xlsx'
summary_wb = openpyxl.load_workbook(summary_file)
summary_ws = summary_wb.active
# 遍历分发文件夹下的所有Excel文件
for file in excel_files:
excel_wb = openpyxl.load_workbook(os.path.join(excel_folder, file))
excel_ws = excel_wb.active
# 遍历分发文件的所有单元格,并将值复制到汇总文件
for row in excel_ws.iter_rows():
project_code = row[0].value # 假设项目编码在第一列
report_project = row[1].value # 假设合报表项目在第二列
if(project_code=="" or report_project==""):
continue
for summary_row in summary_ws.iter_rows():
if summary_row[0].value == project_code: # 假设项目编码在第一列
summary_row[1].value = report_project # 更新报表项目,报表项目在第二列
break
# 保存修改后的汇总文件
summary_wb.save(summary_file)
欢迎关注博主,分享企业实战场景案例。

本文介绍了如何使用Python解决财务部门在处理Excel时的繁琐工作,通过几行代码代替手动操作,如VLOOKUP函数,实现从多个员工Excel模板中自动提取并汇总数据到汇总文件。
767

被折叠的 条评论
为什么被折叠?



