首页 > 编程语言 >Python读Excel数据,创建Word文档上下文字典列表,元素为字典(新)

Python读Excel数据,创建Word文档上下文字典列表,元素为字典(新)

时间:2024-07-17 22:08:41浏览次数:16  
标签:Word Python list 列表 df dict sheet 字典

# 读Excel数据,创建Word文档上下文字典列表,元素为每个培训人员的上下文字典
def create_docx_context_dict_list(_excel_path):
    """
    输入参数:
    :param _excel_path:Excel全路径
    功能:创建Word文档上下文字典列表,元素为每个培训人员的上下文字典
         字典的键为Excel之sheet表头信息
    """
    warnings.simplefilter(action='ignore', category=UserWarning)  # 忽略DataValidationError的警告
    if not _excel_path.exists():
        print(f'{Fore.RED}文件不存在噢!!!\n{_excel_path}{Style.RESET_ALL}')
    try:
        _cols = 16  # 10个单元格、3个复选框、3张图片
        str_dict = {i: str for i in range(_cols)}
        df = pd.read_excel(_excel_path, sheet_name=0, header=None, skiprows=1, converters=str_dict)
        pd.set_option('future.no_silent_downcasting', True)  # 不提示函数在未来版本中将被替代的警告
        df = df.replace(r'\s+', '', regex=True)  # 删除所有字符串列的空格
        df = df.iloc[:, 1:_cols]  # 取15列:B:P,跳过序号列
        df = df.dropna(subset=[1])  # 删除第1列(姓名)具有"NaN"的行
        df_head_list = df.values.tolist()[0]  # 表头列表
        df_info_list = df.values.tolist()[1:]  # 信息列表,数据帧转列表,每行对应一个列表(包括表头)
        context_dict_list = [dict(zip(df_head_list, info)) for info in df_info_list]  # 将每位培训人员字典加入列表
        # pprint(context_dict_list)
        return context_dict_list  # 返回全部培训人员列表
    except ValueError:
        fun_name = inspect.currentframe().f_code.co_name  # 提取函数名称
        print(f'{Fore.RED}函数"{fun_name}"异常退出!!!{Style.RESET_ALL}')
        return []
# 读Excel数据,创建Word文档上下文字典列表,元素为每个培训人员的上下文字典
def read_sheet(_path_excel):
    """
    :param _path_excel:Excel全路径
    功能:读Excel数据,创建Word文档上下文字典列表,元素为每个培训人员的上下文字典
         字典的键为Excel之sheet表头信息
    """
    if not _path_excel.exists():
        print(f'{Fore.RED}文件不存在噢!!!\n{_path_excel}{Style.RESET_ALL}')
    try:
        _cols = 16  # 10个单元格、3个复选框、3张图片
        workbook = exApp.books.open(_path_excel)  # 打开.xlsx文件
        sheet = workbook.sheets[0]  # 第一个数据表
        sheet_list = sheet.used_range.value  # 嵌套列表,sheet数据对应一个列表,每行对应一个列表,索引为0的列表为表头
        workbook.close()  # 关闭Excel
        sheet_list = [li for li in sheet_list if li[1] is not None]  # 使用列表推导式过滤掉None值行
        head_list = sheet_list[0][1:_cols]  # 表头列表
        info_list = sheet_list[1:]  # 信息列表
        context_dict_list = [dict(zip(head_list, info[1:_cols])) for info in info_list]  # 将每位培训人员字典加入列表
        # pprint(context_dict_list)
        return context_dict_list
    except ValueError:
        fun_name = inspect.currentframe().f_code.co_name  # 提取函数名称
        print(f'{Fore.RED}函数"{fun_name}"异常退出!!!{Style.RESET_ALL}')
        return []

 

标签:Word,Python,list,列表,df,dict,sheet,字典
From: https://www.cnblogs.com/zdt168/p/18308403

相关文章

  • ROS服务通信机制实操Python
    ROS服务通信机制实操Python步骤流程vscode配置服务端客户端编辑配置文件编译并执行优化实现参数的动态提交优化先启动客户端后启动服务端ROS服务通信的理论查阅:ROS服务通信流程理论ROS服务通信的自定义srv数据的准备可以查阅:ROS服务通信自定义srv在模型实现中,ROSm......
  • Python实现基于http通信的protobuf数据传输的案例,包括请求者和接收者
    个人名片......
  • Python回归、聚类、相关分析上海公租房租金满意度影响因素数据可视化
    全文链接:https://tecdat.cn/?p=37013原文出处:拓端数据部落公众号随着城市化进程的加速,住房问题日益成为城市居民关注的焦点。公租房作为政府为解决中低收入家庭住房困难而推出的一种重要住房保障形式,其租金水平、居住条件及租住体验直接关系到广大租户的切身利益和生活质量......
  • Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析|附代码数据
    全文下载链接:http://tecdat.cn/?p=17748最近我们被客户要求撰写关于销售量时间序列建模的研究报告,包括一些图形和统计输出。在本文中,在数据科学学习之旅中,我经常处理日常工作中的时间序列数据集,并据此做出预测我将通过以下步骤:探索性数据分析(EDA)问题定义(我们要解决什么)变量......
  • python环境配置及基础学习
    python环境配置及基础学习Miniconda安装及使用创建环境condacreate-nnamepython=3.10进入环境condaactivatename退出环境condadeactivateVSCode安装安装成功后,在左边“extensions”搜索Chinese语音包点击install,按照提示重启VSCode在左边“拓展”搜索python,安装......
  • 企业级环境部署:在 Linux 服务器上如何搭建和部署 Python 环境?
     在大部分企业里,自动化测试框架落地都肯定会集成到Jenkins服务器上做持续集成测试,自动构建以及发送结果到邮箱,实现真正的无人值守测试。不过Jenkins搭建一般都会部署在公司的服务器上,不会在私人电脑里,而服务器大部分都是Linux操作系统的。所以,我们如果要在Linux上的Jenkins服......
  • Python函数基础编写定义
    目录1、函数目的2、函数定义3、函数声明4、函数调用5、函数形参6、函数实参7、函数返回值8、函数的参数类型9、匿名函数1、函数目的函数又叫方法,能减少重复代码的编写,提升代码的复用。函数封装了一定的功能,方便不断使用,可以达到简化代码、重复调用的效果,比如系......
  • python 模拟电力系统
    要模拟一个电力系统,你需要使用Python编写一个程序来建立系统的模型,包括发电机、变压器、输电线路、负载等组件,并模拟它们之间的相互作用。这是一个复杂的任务,通常需要使用数学建模和模拟技术,以便分析电力系统的运行情况。以下是一个简单的示例,展示了如何使用Python模拟电力系......
  • Python电力系统PyPsa
    PyPsa是一款电力系统分析包,其可以进行稳态潮流计算(使用非线性/线性网络方程);线性最优潮流计算(线性网络约束下,计算电厂和储能分布的最小成本,使用线性网络方程);安全约束下线性最优潮流计算全电力/能源系统最小投资成本优化(使用线性网络方程,对发电、储能分布、投资优化)等操作。本文主......
  • Python文件与数据处理:掌握I/O操作与序列化的艺术
    在Python编程的世界里,文件操作和数据序列化犹如画家手中的画笔和调色板,是构建强大应用程序不可或缺的工具。本文将深入探讨open()函数的巧妙使用、JSON和pickle模块的序列化魔法,以及os模块在文件系统操作中的关键角色。让我们一同揭开Python文件与数据处理的神秘面纱,掌握I/O操......