IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> python舔狗学习日记第三期【帮女神自动化生成日报】 -> 正文阅读

[系统运维]python舔狗学习日记第三期【帮女神自动化生成日报】

嗨害大家好鸭! 我是小熊猫?

本来不是很想更这期的…

但是俺小熊猫的私信、企鹅qun 、还有好友消息都说实在是想看…

那么!!!

这期给大家展示一下什么叫实力~
请添加图片描述


众所周知啊~

日报是大部分打工人绕不过的难题,

我们公司也是如此,但是之前管的不严,不写都没事,

前两天老板突然抽风,要女神把之前欠下几个月的都补上,

因为她是做销售的,销售数据一般都要总结,

这下班天都黑了,我真的很想约她看电影呢!

在这里插入图片描述

还好…俺还会点python…

分析案例需求

女神的需求是这样的:

他们平时的销售数据是记录在Excel上,

汇总后会按照部门进行统计

但是今年年初时,老板突然要求写日报,

大家写了一个月发现并不检查就没继续写下去。

请添加图片描述

现在突然被要求明天交之前的所有日报,

这相当于要补2-5月将近120天的日报,

如果靠双手复制粘贴,那估计要吐血了。

同事将其写日报的相关文件都发了过来,

发现最终日报效果如下所示。

请添加图片描述
所以需求也就是比较简单了,

只需要从Excel表格中读取每日的数据,

使用Python将其处理后,再依次写入Word文档中,

即可实现批量生成日报。

在这里插入图片描述

数据处理

在进行数据处理之前,要先了解最终需要哪些数据。

如下图所示,在目标日报Word中主要分为两类:

红色标记的数值主要是由当日的数据、

或者由它们计算后得到的数据构成;

绿色标记的表格则更简单了,

就是近七日的数据(销售数量、销售金额、销售目标、完成度)。

请添加图片描述

首先我们导入Pandas模块进行数据处理

import pandas as pd
df = pd.read_excel("日报数据.xlsx")
df

输出结果
请添加图片描述
导入数据后,接着就可以按照我们的需求,来进行数据运算了。

数据运算主要分为两种,

一种是利用加 +、减 -、乘 *、除 / 进行数据运算

另一种是利用统计方法进行数据运算

在交互式环境中输入如下命令:

df["日期"] = df["日期"].apply(lambda x:x.strftime("%Y-%m-%d"))
df["当日完成度"] = (df["销售金额"]/df["销售目标"]*100).round(1)
df["累计销售金额"] = df["销售金额"].cumsum()
df["当年完成度"] = (df["累计销售金额"]/2200000*100).round(1)
df["累计销售金额"] = (df["累计销售金额"]/10000).round(2)
df

输出结果:

请添加图片描述
可以看到,

最终结果截图中红色标记的数据内容已经全部被计算出来。

而绿色标记的表格则更加简单了,

使用Pandas模块中的数据选取即可

在交互式环境中输入如下命令:

num = 10
df.iloc[num-7:num, :5]

输出结果:
请添加图片描述
通过这种方法就可以轻松得到某一日期的过去7日内的日报数据合集。

在这里插入图片描述

自动生成日报

使用Python自动化操作Word通常会使用python-docx模块

而批量生成Word文档一般有两种方法:

使用add_ paragraph()、add_table()等方法给Word文档添加各种内容。

另一种就是我们这次要用的,

即按照位置替换原Word文档中的文字和表格数据等。

交互式环境中输入如下命令:

for index, rows in df.iterrows():
    if index > 30:
        doc.paragraphs[0].runs[1].text = rows[0]
        doc.paragraphs[4].runs[4].text = rows[0]
        doc.paragraphs[4].runs[6].text = str(rows[1])
        doc.paragraphs[4].runs[8].text = str(rows[2])
        doc.paragraphs[5].runs[1].text = str(rows[3])
        doc.paragraphs[5].runs[3].text = str(rows[4])
        doc.paragraphs[9].runs[2].text = str(rows[5])
        doc.paragraphs[9].runs[7].text = str(rows[6])

        table = doc.tables[0]
        data_table = df.iloc[index-6:index+1,:5]    
        for i in range(7):
            for j in range(5):
                table.cell(i+1,j).text = str(df.iloc[i,j])
        
        doc.save(f"销售日报-{rows[0]}.docx")

执行代码,输出结果:

请添加图片描述
如上图所示,

120份有记录的销售日报就写好啦,

Python自动化办公就是怎么神奇。

请添加图片描述

完整代码获取方式在文末名片

因为语法简单、容易上手

Python 被称为“最适合初学者学习”的编程语言。

而对于工作中各种重复性的电脑工作,

都可以考虑用Python来转变为自动化程序。

请添加图片描述
如果你是一个Python初学者,

会发现本文的逻辑非常简单,

甚至大家还可以对此进行改进。

比如python-docx模块在读取Word文档有优势,

但是向模板中写入文本时,

可以考虑使用docxtpl模块(学一点Jinja2语法)

请添加图片描述

是不是很简单呢~

今天的文章就是这样啦~

我是小熊猫,咱下篇文章再见啦(????)

请添加图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章           查看所有文章
加:2022-09-15 02:22:56  更:2022-09-15 02:26:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 19:44:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计