如何自动写周报 —— 表格篇

戴冠英

Python|2023-8-13|最后更新: 2023-8-14|
有时候我们需要处理Excel,处理完Excel之后将图片或表格(通常是数据透视表)放进Word里。但是,人类不应该把时间浪费在这些事情,天天都处理这些,什么时候思考呢?我们可以用Python处理Excel,把处理后的Excel直接放进Word中。
本篇介绍如何用Python处理周报中的表格,仅包括如何把表格放进Word里,不包括如何处理数据~
P.S. 我使用pandas处理Excel; 我使用Python-docx处理Word。

1、调用包

2、处理数据

3、保存到Word中

假设我们已经有一个处理好的Dataframe,叫做df
实际应用中,我们通常是把多个表封装进一个Word里,然后再接着加段落、图片等,而不是只把一个表封装进去就结束,这样才能形成报告。
我写了一个函数,这个函数的功能是,你提供df和想要封装进去的doc,就能把表格装进去,如下:
虽然现在没有产品经理了,但我还是喜欢把需求方叫做产品经理,以后也这样说。
产品经理说:“大改!”
在原有的基础上,还希望加入这样的功能:表格里数据大于0时标红,小于0时标绿,修改后如下:
这里逻辑跟之前是一样的,新增的关键是在写入数据的时候判断数据是>0还是<0,进而赋予颜色。难点在与颜色怎么设置。
在添加每个值之前,函数创建一个文本运行对象(run),并将值转换为字符串并添加到该运行中。然后,函数检查is_color参数是否为1,并且该值是否为数字(int或float类型)。如果是,它根据值的正负设置运行对象的字体颜色。如果值大于0,则将字体颜色设置为红色(RGBColor(255, 0, 0)),如果值小于0,则将字体颜色设置为绿色(RGBColor(0, 112, 0))。
这个之前也没接触过,今天整了一段时间。写代码的人就是经常需要临阵突破,左手搜索引擎右手ChatGPT。你不能说你不会,不会也得给我一下午整会了。