Python Excel 指定内容修改

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

需求描述

在处理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)

欢迎关注博主,分享企业实战场景案例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值