篇首语
“惟楚有才,于斯为盛”,今天爆了友圈,此起彼伏的红灯再一次感受了一把长沙城的拥堵。
终于安安静静了码了天代码,好好收了个尾,基于各种原因需要做一个系列,所以趁着还有点热度,赶紧整理下!
曾经看过一篇文章,其他的不太记得了, 有一点是:最重要的信息往往来自简短而非正式的谈话,这种信息的传递速度往往也比任何一种书面报告或是小纸条快,而信息的价值,通常也和其时效有绝对的关联。
虽然与今天这篇文章没有太多关联,但对于日常多到爆炸的 PPT 通报,如何又快,又准确的描述该描述,该汇报的信息,实现自动化输出,感觉刻不容缓啊。
整个项目将会介绍如何利用 python 对日常的工作数据进行清洗处理,再形成需要的柱形图以及相应的表格,最后自动在 PPT 中更新,不到 5 分钟输出 PPT 的整个过程。今天先做一个大致的介绍,后续的代码和数据部分将在两周内奉上(下个军令状监督自己,不然又要拖拖拉拉。。。。。)
2 装包系列
python-pptx 官网介绍:https://python-pptx.readthedocs.io/en/latest/ openpyxl 官网链接:https://openpyxl.readthedocs.io/en/stable/
必备 os pandas numpy 【木有的话,自行百度】
3 主要步骤
整个框架包含三个部分,
1、将收到的数据进行规整,包括各类 top 值的计算,文案的整理(就是每一个 PPT 图表必备的解释语句);
2、将数据格式进行完善,格式处理;
3、设置数据、图表、文案自动填入 PPT,再生成需要的通报
3.1 数据读取,清洗,规整
这里主要是用了 groupby,query,merge,fillna,round,loc,replace 等进行数据清洗,一切用习惯了的 EXCEL 操作都可以代码化,并且自动的!
3.2 表格格式化,图表格式化
对于我们内部通报来说,除了针对区域位置进行比对,一般还要习惯性的具体点到人或者对象,就是通俗的点名部分,所以进行了表格和图形两种处理,再加上文案,基本上 PPT 的素材就完成啦!以前用了 pyechart,可视化效果木有那么好,所以,这块如果没有尝试的童鞋还是可以好好看看的。
3.3 PPT 自动更新数据源
这一块就是用的网上的一个小技巧,利用了 PPt 的自带功能,千万不要眨眼,不然数据没法自动更新啦!
今天先简单介绍下 python-pptx 这个库:
主要是用于创建和更新 PowerPoint(.pptx)文件、具有以下功能,并且迭代更新:往返所有 Open XML 演示文稿(.pptx 文件),包括其所有元素 添加幻灯片 填充文本占位符,例如创建项目符号幻灯片 添加图像以任意位置和尺寸滑动 向幻灯片添加文本框;操作文本字体大小和粗体 将表格添加到幻灯片 将自动形状(例如多边形,流程图形状等)添加到幻灯片 添加和操作柱形图,条形图,折线图和饼图 访问和更改核心文档属性,例如标题和主题
接下来根据这张图来理清 PPT 的结构,后面代码编写要用的哈。
最后放实际完成的效果,证明实现了。