我是做运营的。每周五下午三点,钉钉群准时弹出消息,“本周周报请于下班前提交”。我盯着空白的Word文档发呆。表格要画,数据分析要贴,还有那个该死的PPT,领导要看。周围同事噼里啪啦敲键盘。我默默打开Python,一句import win32com.client写下去。接下来十分钟,我可以喝杯咖啡,看着程序自动生成十页周报。
win32com这玩意,说白了就是Windows系统里的自动化工具。它让你用Python直接操控Office软件。你写代码,代码帮你打开Word,创建文档,写入文字。就像有个隐形的手在操作。不用纠结怎么读文件。不用管图标在哪里。写了就执行。
装这个库很简单。命令行输一句 pip install pywin32 。装完导入模块就好。我常写这句:from win32com.client import Dispatch。然后word = Dispatch(“Word.Application”)。Word程序就悄悄在后台启动了。它不会弹出来吓你一跳。你在代码里控制一切。
写周报最难的是整理数据。Excel表格里有几十行项目进度。以前我一个个复制。现在直接写循环拉取。一行代码搞定数据读取,再用字段插入。比如这样:selection.TypeText(str(row[1]))。把Excel单元格内容输出到Word里。不用管格式乱不乱。我在代码里定了表格样式。每次执行都会套用默认模板。
做PPT更省事。领导要求每页放三个数据点加一个趋势图。手工做要憋半小时。用win32com,从Excel偷数值,往PPT里填充。还能设置字体大小和颜色。我做了一个函数叫make_slide()。传入日期和数据列表。PPT页面自己生成。配图甚至可以从文件夹里自动抓。
有人担心代码写不对,报错怎么办。我刚开始也怕。后来发现先写一小段。测试能打开Word。再加写入功能。一步步来。报错了看看错误信息,多半是路径写错或者对象没定义。调一下就好了。这比重复劳动强太多。
我记性不好。每次写周报都忘记上周的进度。现在把代码模板保存好。每周五下午两点半执行一遍。程序自动拉取上周末到今天的所有数据。生成文档。生成了我再简单修一下。节省二十分钟不止。团队里其他人还在对着文档烦躁。我已经在群里发了文件。
最爽的一点是,代码写一次可以反复用。不只周报。季度总结、项目汇报、团队周知。格式换了调一下模板就行。不用每次从头开始。不用重复劳动。你学会了,往后每个周五都能提前下班。
当然也有风险。比如Word版本不兼容,某些方法会失效。或者电脑权限不够,程序启动失败。但这些是小概率事。网上搜下解决方案。大部分能在几分钟内搞定。比起天天手工画表格,这点投入很值得。
你可以从最简单的开始。先写个创建空白文档的代码。成功了就加一句话。再添加表格。再合并单元格。每多一行功能,成就感多一分。等你把周报流程跑通,你会发现以前那些烦人的操作,真的不用再亲自做了。
把手上的工作自动化。把时间留给更有意义的事。比如思考数据背后的原因,或者直接休息。这才是工具的意义。Python加win32com,让你的周报自己完成。笑一下。然后下班。