今天聊聊怎么用Python自动生成数据日报!

其实我觉得蛮简单,核心就是你组装好日报的内容模板,然后将变化的量交给python去填充,需要用到的基本就是python处理excel、word和ppt等相关的库。熟练的使用它们,你就可以自动化一条龙了。

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

对于管理者来说,日报是事前管理的最好抓手,可以了解团队的氛围和状态。可对于员工来说,那就有的聊了。对于重复性的工作,我非常推荐大家使用Python将其变成模块化、自动化,帮助我们实现高效办公。

下面我们通过一个补写销售日报的案例,展示一下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自动化办公就是怎么神奇。

完整代码获取方式:

链接:https://pan.baidu.com/s/1gayOUOq_YCONvRmtNo0NIA

提取码:p9iw

因为语法简单、容易上手,Python 被称为“最适合初学者学习”的编程语言。而对于工作中各种重复性的电脑工作,都可以考虑用Python来转变为自动化程序。

如果你是一个Python初学者,会发现本文的逻辑非常简单,甚至大家还可以对此进行改进。比如python-docx模块在读取Word文档有优势,但是向模板中写入文本时,可以考虑使用docxtpl模块(学一点Jinja2语法)。

-END-

添加请备注:python

用Python自动生成数据日报!相关推荐

  1. Python自动生成数据日报

    对于一个企业来说,高层看意义,中层看结论,基层看落地,数据日报.周报.月报可以监控销售个人在实际执行过程中的销售动态,而数据季度报.年报可以反映一个销售策略是否与实际的业务场景切合. 可见数据日报在我 ...

  2. 用 Python 自动生成数据日报!

    日报,是大部分打工人绕不过的难题. 对于管理者来说,日报是事前管理的最好抓手,可以了解团队的氛围和状态.可对于员工来说,那就有的聊了.对于重复性的工作,我非常推荐大家使用Python将其变成模块化.自 ...

  3. 偷懒神器!用Python自动生成数据日报!

    日报,是大部分打工人绕不过的难题. 对于管理者来说,日报是事前管理的最好抓手,可以了解团队的氛围和状态.可对于员工来说,那就有的聊了.对于重复性的工作,我非常推荐大家使用Python将其变成模块化.自 ...

  4. 打爆老板,用Python自动生成数据日报

    日报,是大部分打工人绕不过的难题. 对于管理者来说,日报是事前管理的最好抓手,可以了解团队的氛围和状态.可对于员工来说,那就有的聊了.对于重复性的工作,我非常推荐大家使用Python将其变成模块化.自 ...

  5. 用Python自动生成NBA巨星生涯数据曲线

    1.序 之前写过一个用 python 自动生成球员职业生涯数据的程序(原文请关注本人公众号),大家的反响很好,我也感到很欣慰.有问我怎么做的,如何学 python 的,也有提建议说集成到 web 里面 ...

  6. 用 Python 自动生成 Excel 数据报表~

    大家好,我是小z 今天给大家来一波实战,使用Python自动化生成数据报表! 从一条条的数据中,创建出一张数据报表,得出你想要的东西,提高效率. 主要使用到pandas.xlwings以及matplo ...

  7. python自动汇总表格_用Python自动生成Excel报表

    作者 / 来源:林骥(ID:linjiwx) 01 安装和导入模块 以 Python 中的 openpyxl 模块为例,它能够读取和修改 Excel 文件,如果你还没有安装,可以通过以下命令进行安装: ...

  8. python ppt自动生成_实战 | Python自动生成PPT调研报告

    原标题:实战 | Python自动生成PPT调研报告 原文: 全文约 3821 字,读完可能需要 5 分钟. 文/JSong @2017.02.28 在数据分析里面有一句话是说,80%的时间要用于数据 ...

  9. 用Python自动生成Excel报表

    在日常工作中,可能会有一些重复无聊的任务,比如说,从 Excel 或数据库中收集一些数据,设置相应的数据格式并做成报表. 类似这种重复无聊的任务,我们完全可以交给 Python 去自动完成,只要第一次 ...

最新文章

  1. 官宣!英雄联盟、王者荣耀、街霸……这些电子竞技入选杭州亚运会
  2. 如何测试网络视频服务器(DVS)
  3. 蚂蚁金服共享智能技术实践:如何降低数据共享的难度?
  4. asp.net超过字数限制用省略号...表示
  5. ROS机器人程序设计(原书第2版)3.9.1 使用rqt_rviz在3D世界中实现数据可视化
  6. WM_USER和WM_APP[转]
  7. 腾讯开源软件镜像站上线
  8. css3-2 CSS3选择器和文本字体样式
  9. 采用存储复制方式同步数据,实现数据库安全升级
  10. C语言的struct和C++的class的区别
  11. 计算机网络——OSI参考模型和网络的排错
  12. 写代码时发现......还是SpringBoot牛逼!
  13. 2021-08-16 WPF控件专题 StackPanel 控件详解
  14. 【DS基础】静态链表
  15. 2021年西式面点师(中级)考试题库及西式面点师(中级)模拟试题
  16. 机器学习入门——简单线性回归
  17. EOJ 2990 文献排序 C语言
  18. maven本地仓库中已有jar包,项目却读取不了
  19. Python学习之CSDN21天学习挑战赛计划之2
  20. Elasticsearch6.8开发指南-第三章-设置Elasticsearch

热门文章

  1. C/C++加减乘除运算效率分析
  2. 个人自我介绍PPT模板推荐
  3. 两利好因素携手而至 美元指数或逼近年内高点?
  4. python脚本编程读后感_Python编程:从入门到实践经典读后感10篇
  5. 什么是JIT,JDK17移除了JIT?
  6. springboot-加载自定义的properties文件
  7. IOTE 2019物联网嘉年华在深圆满落幕
  8. canal搭建(HA)
  9. 【图形学】计算机图形学-练习题5
  10. 服务器运维用macos,MacOS和Linux区别_网站服务器运行维护,linux,macos