Excel文件处理excel内容

针对这个Excel文件处理需求,请输出一个Python脚本:根据Excel文档内容,输出一个新的Excel,按每个sheet一样的命名新Excel的sheet,每个sheet里的内容与原Excel的对应关系如下:登陆账号='经办人司库账号'或'审核人司库号';用户名称='经办人名称'或'审核人名称';所属组织编码='单位编号';所属角色编码=经办人填充0002,审核人填充0004;注意统一登录账号的经办人或者审核人会存在多个组织或角色中,则所属组织编码、所属角色编码用逗号隔离罗列在同一账号姓名人员里即可。

python 复制代码
import pandas as pd

def process_sheet(df, sheet_name, output_writer):
    # 添加新的列
    df['所属组织编码'] = df['单位编码']
    df['所属角色编码'] = None

    # 将经办人和审核人的信息合并到同一个 DataFrame 中
    if '审核人司库号' in df.columns and '审核人名称' in df.columns:
        df['审核人司库号'].fillna('', inplace=True)
        df['审核人名称'].fillna('', inplace=True)
        df = pd.concat([df, df[['审核人司库号', '审核人名称', '单位编码']].rename(columns={'审核人司库号': '经办人司库账号', '审核人名称': '经办人名称'})], ignore_index=True)

    # 根据经办人账号分组
    grouped = df.groupby('经办人司库账号')

    # 创建一个新的 DataFrame 来存储结果
    result_df = []

    for account, group in grouped:
        # 对于每个账号,获取唯一的姓名
        name = group['经办人名称'].iloc[0]

        # 获取所有相关的单位编码和角色编码
        org_codes = group['单位编码'].unique()
        role_codes = ['0002'] * len(org_codes)  # 经办人角色编码

        # 如果有审核人的信息,添加审核人的角色编码
        if '审核人司库号' in df.columns:
            role_codes += ['0004'] * len(org_codes)  # 审核人角色编码

        # 合并组织编码和角色编码
        org_code_str = ','.join(map(str, org_codes))
        role_code_str = ','.join(map(str, role_codes))

        # 添加一行到结果 DataFrame
        result_df.append({
            '登陆账号': account,
            '用户名称': name,
            '所属组织编码': org_code_str,
            '所属角色编码': role_code_str
        })

    # 将结果转换为 DataFrame
    result_df = pd.DataFrame(result_df)

    # 写入新的 Excel 文件
    result_df.to_excel(output_writer, sheet_name=sheet_name, index=False)

def process_excel(input_file, output_file):
    # 读取原始 Excel 文件
    excel = pd.ExcelFile(input_file)

    # 创建 ExcelWriter 对象用于写入结果
    with pd.ExcelWriter(output_file, engine='openpyxl') as writer:
        for sheet_name in excel.sheet_names:
            df = pd.read_excel(input_file, sheet_name=sheet_name)
            process_sheet(df, sheet_name, writer)

# 指定输入和输出文件路径
input_file = 'D:\\input.xlsx'  # 原始文件路径
output_file = 'D:\\processed_data.xlsx'  # 输出文件路径

# 执行处理
process_excel(input_file, output_file)
相关推荐
一只鹿鹿鹿3 小时前
政务外网整体设计方案(PPT)
大数据·数据库·web安全·系统安全·流程图·政务
数字新视界3 小时前
机房动环监控提升运维效率
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
SelectDB技术团队4 小时前
冷热分层从建到验:Storage Policy 创建、表级与分区级绑定、SHOW TABLETS 验证的完整命令
大数据·数据库·elasticsearch·搜索引擎·数据分析·apache doris·冷热分层
CALL158119098454 小时前
RoHS报告怎么做?测试项目、流程、费用与报告内容一文讲清
大数据
建筑工程企业管理系统4 小时前
工程进度统计管理系统自动化汇总数据,解决施工企业手工对账误差难题
大数据·人工智能·自动化
GOWIN革文品牌咨询5 小时前
工业测量品牌系统化搭建指南:从内容架构到长期治理的全流程
大数据·人工智能·架构
汇智信科5 小时前
汇智信科智联网关 | 多协议兼容,PLC设备一键上云
大数据·汇智信科
Sadie_d5 小时前
Excel管理研发项目有哪些问题?什么情况要升级项目管理系统?
excel·项目管理·研发管理
2601_967212725 小时前
安全型电源轨道系统合规选型技术指标与行业技术路线分析
大数据·经验分享·安全
派小心.6 小时前
小程序分享链路中来源参数的传递校验
大数据·前端·数据库·人工智能·小程序·数据分析