盘点一个Python自动化办公需求,实现数据自动填充(下篇)

news2024/11/18 6:44:34

点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

七月七日长生殿,夜半无人私语时。

大家好,我是皮皮。

一、前言

前几天遇到了一个小需求,粉丝自己在实际工作中的需求,需要把下图的表格内容,自动填充到目标表格中去,省得挨个去复制粘贴了,而且还十分容易出错。

原始表格如下图所示:

502da347665821edc3e36612814a9b9f.png

目标表格如下图所示:

7a326cb0ee651b65dda16d66319c0995.png

上一篇文章中我们谈到了单个文件的处理,如果现在粉丝有几十个这样的同类Excel文件需要处理,那么该怎么来修改代码呢?

二、实现过程

这里【枫涧澈浪】大佬给了一个代码,如下所示:

# -*- coding: utf-8 -*-
__author__ = 'Jason.Fan'

import pandas as pd
import re
import os
import glob

rawXls='模板.xls'   #要处理的表格文件
resXls= 'res.xls'   #要生成的文件

rerule = r"(\d{4}-\d{1,2}-\d{1,2})"
resDict = {}


class SheetInfo:
    name = ''
    ID = ''
    age = ''
    date = ''


def main_sub(rawXls,resXls):
    df = pd.read_excel(rawXls)
    # print(df.head())
    # print(df.iloc[0,0])
    # print(df.columns)

    # print(Get_CellContent('模板.xls','Sheet4',['姓名'],0))
    SheetInfo.name = df.columns[1]
    SheetInfo.ID = df.iloc[0, 1]
    SheetInfo.age = df.iloc[1, 1]
    SheetInfo.date = re.findall(rerule, (df.iloc[1, 2]))[0]

    print(SheetInfo.name, SheetInfo.ID, SheetInfo.age, SheetInfo.date)

    resDict['日期'] = SheetInfo.date
    resDict['姓名'] = SheetInfo.name
    resDict['ID'] = SheetInfo.ID
    resDict['年龄'] = SheetInfo.age

    ndf = df.iloc[4:, :]
    ndf.columns = range(6)
    for idx, v in ndf.iterrows():
        print(v[0], v[2], v[3])
        #核心内容pass

    # print(resDict)
    finalDF = pd.DataFrame.from_dict(resDict, orient='index').T
    finalDF.to_excel(resXls, index=None)

    # os.system(resXls)


def main():
    for fi in glob.glob('*.xls'):
        if '_res' in os.path.basename(fi): continue
        main_sub(fi,'{}_res.xls'.format(os.path.basename(fi)))


if __name__ == '__main__':
    main()

代码运行之后,该文件夹下的所有Excel表格都可以处理成功,可以得到预期的效果。

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python自动化办公处理的问题,实现文件的批量处理,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

54dc40ae42091fcdfc2e7f37171a19de.png

大家在学习过程中如果有遇到问题,欢迎随时联系我解决(我的微信:pdcfighting1),应粉丝要求,我创建了一些高质量的Python付费学习交流群和付费接单群,欢迎大家加入我的Python学习交流群和接单群!

56832be7627db8934adbfb068b24f010.png

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

53cfa7e891d54d8e71d83679f4807a9c.jpeg

------------------- End -------------------

往期精彩文章推荐:

  • if a and b and c and d:这种代码有优雅的写法吗?

  • Pycharm和Python到底啥关系?

  • 都说chatGPT编程怎么怎么厉害,今天试了一下,有个静态网页,chatGPT居然没搞定?

  • 站不住就准备加仓,这个pandas语句该咋写?

556d058e8f4a0a80d0e804b2f52b2f53.png

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/604466.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

回顾 | Semantic Kernel:面向 AI 编程(二) - Prompt Skill

点击蓝字 关注我们 编辑:Alan Wang 排版:Rani Sun 微软 Reactor 为帮助广开发者,技术爱好者,更好的学习 .NET Core, C#, Python,数据科学,机器学习,AI,区块链, IoT 等技术&#xff0…

子集II--(回溯+去重)

1题目 给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。 示例 1: 输入:nums [1,2…

基于最大似然反射率的异构激光雷达强度标定方案(开源)

文章:Maximum Likelihood Remission Calibration for Groups of Heterogeneous Laser Scanners 作者:Bastian Steder Michael Ruhnke Rainer Kummerle Wolfram Burgard 编辑:点云PCL 代码:https://github.com/soytony/IntensityCa…

vue 更新数组的方法

在 vue中,我们可以通过给数组添加索引来更新数组的值,比如我们需要在一个新的页面中添加一个新的元素,那么我们就可以通过给这个数组添加索引来实现。那么有朋友就会问了,为什么不直接在 vue中直接添加一个新的元素呢?…

chatgpt赋能python:Python列表排列顺序详解

Python列表排列顺序详解 作为一门功能丰富的高级编程语言,Python在不同类型的开发任务中广泛应用。其中,列表是一种常见的数据类型,用于存储多个元素。Python列表可以包含任何类型的数据,包括数字、字符串和其他列表等&#xff0…

干洗店软件,洗衣洗鞋线上下单小程序开发

干洗店软件洗衣洗鞋线上下单小程序; 可以实现客户自助办理,也可以和公众号、小程序等结合起来。干洗店软件可以实现客户管理,如积分管理,产品设置等功能。 线上下单,上门取货,订单拍照,订阅提示…

开发者实战 | 分割一切?Segment Anything 量化加速实战

点击蓝字 关注我们,让开发变得更有趣 作者 | 杨亦诚 排版 | 李擎 分割一切? Segment Anything 量化加速实战 前言 “分割一切,大家一起失业!”——近期,这样一句话在社交媒体上大火!这讲的就是 Segment Anything Model&#xff08…

chatgpt赋能python:Python创建一个Person类

Python 创建一个 Person 类 Python 是一种高级编程语言,因为它易于学习和使用,并且可以用于多种用途。使用 Python,您可以轻松创建各种程序,从简单的脚本到完整的应用程序。Python 的一个重要特点是它的面向对象编程能力&#xf…

「VS」Visual Studio 字符集

✨博客主页:何曾参静谧的博客 📌文章专栏:「VS」Visual Studio 当我们在使用 Visual Studio 编写程序时,经常会遇到字符集的问题。在 Visual Studio 中,字符集选项有两个选项:Unicode 字符集和多字节字符集…

期刊和会议如何查询、期刊级别分类和顶会概念一文精析

期刊和会议查询、期刊级别分类和顶会概念分析 一、如何查询期刊和会议1.中文期刊-用知网出版物检索2.外文期刊-一般用letpub3.会议查询 二、国内期刊的正刊三、国内核心期刊四、国际核心期刊五、ESCI、SCI和SCIE的区别六、国际会议核心七、普刊八、顶刊九、水刊十、预警期刊 了…

一起看 I/O | Android 性能相关最新动态

作者 / Ben Weiss 过去几年来,我们一直致力于让性能提升工作变得更易上手、回报更高。我们将在本文中分享这一领域的最新发展动态。为您介绍基准配置文件、Android Studio 中的工具改进、库,以及我们如何让这项技术更好地在后台为您服务。此外&#xff0…

IPA50R190CE-ASEMI代理英飞凌MOS管IPA50R190CE

编辑:ll IPA50R190CE-ASEMI代理英飞凌MOS管IPA50R190CE 型号:IPA50R190CE 品牌:Infineon(英飞凌) 封装:TO-220F 最大漏源电流:24.8A 漏源击穿电压:500V RDS(ON)Max&#xff1…

某oa 11.10 未授权任意文件上传

漏洞简介 之前也对通达 oa 做过比较具体的分析和漏洞挖掘,前几天看到通达 oa 11.10 存在未授权任意文件上传漏洞,于是也打算对此进行复现和分析。 环境搭建 https://www.tongda2000.com/download/p2019.php 下载地址 :https://cdndown.tongda…

java-Lambde和方法引用

java-Lambde和方法引用 一、Lambda表达式 1.1 Lambda标准格式 格式: ​ (形参) -> {代码块} 形参:如果有多个参数,参数之间用逗号隔开;如果没有参数,留空即可 ->:由英文中画线和大于符号组成&#…

企业虚拟机服务器中了lockbit3.0勒索病毒怎么办,lockbit勒索病毒解密

虚拟机服务器在现代企业中扮演着至关重要的角色,它是一个重要的基础设施,用于支持大量的业务应用和数据存储。然而,随着网络攻击技术的不断发展,企业虚拟机服务器也面临着来自黑客的威胁。其中一种最具破坏性的攻击是勒索病毒&…

单例模式8种写法

0. 为什么需要单例模式? 节省内存和计算保证结果正确方便管理 使用场景: 1. 饿汉式(静态常量)—推荐指数:★★☆☆☆ 优点:不会有线程安全问题。 缺点:在类加载的时候就创建对象,…

VMware SD-WAN 5.2 发布 - 软件定义的 WAN

VMware SD-WAN 5.2 发布 - 软件定义的 WAN SD-WAN 解决方案的领导者 请访问原文链接:https://sysin.org/blog/vmware-sd-wan-5/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 产品概述 软件定义的 WAN (SD-WAN)…

chatgpt赋能python:Python列表横向合并

Python列表横向合并 Python是一种功能强大的编程语言,被越来越多的开发者所青睐。列表是Python中最常用的数据结构之一,它是一种有序的集合,可以存储任意类型的数据。在编写Python程序时,很常见的需求是将两个或多个列表横向合并…

(超详细)关于Nacos的共享配置( shared-configs)和拓展配置(extension-config)

前言 用SpringBoot的铁子们,相信大多数人都使用过Nacos作为注册中心和配置文件管理中心,确实很方便。但是很多铁子们依葫芦画瓢,都知道怎么用,但是对于其中的细节可能没有系统地整理过。今天就讲讲关于Nacos的共享配置和扩展配置…

【C++11】C++11新增语法 Lambda表达式/Lambda的底层原理

Lambda表达式 1 Lambda使用的一个例子2 Lambda 表达式的语法3 初次体验Lambda表达式4 Lambda函数底层实现原理 1 Lambda使用的一个例子 在C98中&#xff0c;如果我们想要对一个自定义类型进行排序&#xff0c;就需要用户自定义去书写比较的规则。 #include <iostream> …