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

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

下面我们通过一个补写销售日报的案例,展示一下Python自动化办公的优势。本文简化了案例的流程,完整代码获取方式

链接:https://pan.baidu.com/s/1TPn53r4wd_k_VgqOewlO_A?pwd=kxpy

需求详解

朋友的需求是这样的,他们平时的销售数据是记录在Excel上,汇总后会按照部门进行统计。但是今年年初时,领导突然要求写日报,大家写了一个月发现并不检查就没继续写下去。

现在突然被要求明天交本月之前的所有日报,这相当于要补2-5月将近120天的日报,如果靠双手复制粘贴,那估计要吐血了。朋友将其写日报的相关文件都发了过来,发现最终日报效果如下所示。

所以需求也就是比较简单了,只需要从Excel表格中读取每日的数据,使用Python将其处理后,再依次写入Word文档中,即可实现批量生成日报。

正好最近有本新书《快学Python:自动化办公轻松实战》,既是一本Python入门书,又包含了大量Python自动化办公的实战项目。我们只需学习其中的第3章、第5章,即可轻松实现今天的这个需求。

数据处理

在进行数据处理之前,要先了解最终需要哪些数据。如下图所示,在目标日报Word中主要分为两类:红色标记的数值主要是由当日的数据、或者由它们计算后得到的数据构成;绿色标记的表格则更简单了,就是近七日的数据(销售数量、销售金额、销售目标、完成度)。

首先我们导入Pandas模块进行数据处理,在新书《快学Python:自动化办公轻松实战》的第3章中,正是【学习Python,可以自动化处理数据】。

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模块中的数据选取即可,详见新书《快学Python:自动化办公轻松实战》章节3.2.3。

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

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

输出结果:

通过这种方法就可以轻松得到某一日期的过去7日内的日报数据合集。

自动生成日报

如果想自动生成Word日报,就需要学习新书《快学Python:自动化办公轻松实战》中第5章的内容,即【学习Python,可以自动化操作Word】。

使用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/1TPn53r4wd_k_VgqOewlO_A?pwd=kxpy

提取码:kxpy

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

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


如果你是一个0基础的编程初学者,那也不用怕!

因为正好最近新书《快学Python:自动化办公轻松实战》终于上市了,人生苦短,快学Python!这是一本适合初学者的Python入门书,也是进阶学习Python自动化办公宝典,更是一本拥有30+实战案例、10+工作项目的参考大全!

今天分享文章的Python自动化办公案例,其中知识点就是来自《快学Python:自动化办公轻松实战》书籍。

如果大家感兴趣,可以点击下方链接查看书籍介绍和目录,绝对是最适合大家的Python入门书,也是大家学习Python自动化办公的进阶书,更是随时可以翻看参考的案例宝典!

Python自动化办公 | 用Python自动生成数据日报相关推荐

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

    今天聊聊怎么用Python自动生成数据日报! 其实我觉得蛮简单,核心就是你组装好日报的内容模板,然后将变化的量交给python去填充,需要用到的基本就是python处理excel.word和ppt等相 ...

  2. Python自动生成数据日报

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

  3. lisp对excel其他行列写入_【极简Python 自动化办公】Python写入Excel表格

    [极简Python 自动化办公]Python写入Excel表格 [极简Python 自动化办公]专栏是介绍如何利用python办公,减少工作负荷.篇幅精炼,内容易懂,无论是否有编程基础,都非常适合. ...

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

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

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

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

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

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

  7. 【python自动化办公】Python自动化之Excel——XLWings模块(入门)

    目录 前言 1. 学习python自动化办公目的 2. 未来持续打卡内容 3. 资料来源 一.xlwings介绍 1. 是什么?有什么优点? 2. 数据结构 3. 操作内容 一个实例: 创建一个exc ...

  8. python自动化办公兼职-python自动化办公?学这些就够用了

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手? python在自动化办公领域越来越受欢迎,批量处 ...

  9. python自动化办公 书籍-python自动化办公知识点整理汇总

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...

  10. 【python自动化办公】Python自动化之pdf——PyPDF2、pdfplumber、fitz、pdf2image库介绍

    目录 前言 1. 学习python自动化办公目的 2. 未来持续打卡内容 3. 资料来源与思维导图 一.PDF处理库 1.PyPDF2--基础操作 2.pdfplumber--表格抽取 3.fitz- ...

最新文章

  1. 通过url,获取html内容,并解析
  2. python 条件表达式换行_Python基础语法 - LongKing-Xu的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. AIM Tech Round 4 (Div. 2)
  4. android 悬浮按钮 功能实现,Android自定义悬浮按钮效果实现,带移动效果
  5. 对于初步搭建好的SSH框架进行简化(注解的使用)
  6. atitit 图像处理机器视觉专业博硕连读课程表.xlsx
  7. python爬虫出来空值_pandas | DataFrame基础运算以及空值填充
  8. nutch2.3.1 mysql_Nutch-NewsClassify
  9. hybrid 单臂路由
  10. Thinkphp 模板/包含文件
  11. TensorFlow ERROR:Resource temporarily unavailable
  12. 2021小白Python入门学习记录Day3(win10系统、Python3.9、使用Pycharm)python高级数据类型(字符串、列表、元组、字典、集合) 及其操作
  13. 自动驾驶两大路线对决,渐进式玩家为何更容易得人心?
  14. 杏子语录(2019年07月)
  15. android融云消息免打扰
  16. CUDA 学习(CUDA实战 第四章)
  17. 密码技术学习(1)-初识密码
  18. 后ERP时代之协同运营管理平台实践
  19. 如何将报表系统集成到微信中?
  20. 20162316刘诚昊 10月9日“查找课堂测试”

热门文章

  1. Matplotlib confusion map显示不全
  2. 吴昊品游戏核心算法 Round 8(特别篇) —— 吴昊教你打麻将(牌型分析AI)
  3. 上twitter_如何在Twitter上找到重大新闻
  4. 魔百和CM311-1A_YST、(YM)_安卓9_S905L3A_默认开启ADB_纯净精简语音_完美线刷包
  5. 计算机win7不断重启,win7系统无故自动重启的解决办法
  6. matlab 实现马赫带效应,图像上机实验.doc
  7. 抽取word中的背景图
  8. bat 引号 嵌套_边缘检测 使用 OpenCV 和 深度学习 进行整体嵌套边缘检测
  9. 上云避坑指南100篇|ERP上云一时爽,遇坑泪两行
  10. Google黑客常用搜索语法