其实我觉得挺简单的。核心就是你把日报的内容模板组装起来,然后把改好的量交给python去填,基本上就是要用python处理excel、word、ppt等相关库。熟练使用它们,你就可以使龙自动化。日报是大多数农民工绕不开的问题。对于管理者来说,日报是最好的提前管理方式,可以了解团队的氛围和状态。但对于员工来说,还是有话要说的。对于重复性的工作,我强烈推荐大家使用Python,将其模块化、自动化,帮助我们实现高效办公。下面通过一个日常补销的案例来展示一下Python自动化办公的优势。本文简化了案例的流程,文末附上完整代码。需求详解小伙伴们的需求如下。他们平时的销售数据都是用Excel记录的,汇总之后再按部门统计。但今年年初,领导突然要求写一份日报。大家写了一个月,发现没有检查,就没有继续写了。现在突然让我明天把这个月之前的所有日报都交上去,相当于补了2月到5月近120天的日报。如果我用双手复制粘贴,我可能会吐血。朋友把自己日报的相关文件都发过去了,发现最终的日报效果如下。所以要求比较简单。只需要从Excel表格中读取每日数据,用Python处理,然后写入Word文档,即可实现批量生成日报。数据处理在进行数据处理之前,需要知道最终需要什么样的数据。如下图,目标日词中主要有两大类:红色标记的值主要由当天的数据或他们计算后得到的数据组成;绿色标注的表格比较简单,就是过去7天的数据(销售数量、销售金额、销售目标、完成度)。首先我们导入Pandas模块进行数据处理。importpandasaspddf=pd.read_excel("Dailydata.xlsx")dfoutputresult:导入数据后,我们接下来就可以根据需要进行数据计算了。数据运算主要分为两种,一种是使用加+、减-、乘*、除/进行数据运算,另一种是使用统计方法进行数据运算。在交互环境中输入以下命令:df["date"]=df["date"].apply(lambdax:x.strftime("%Y-%m-%d"))df["Completionoftheday"]=(df["销售额"]/df["销售额目标"]*100).round(1)df["累计销售额"]=df["销售额"].cumsum()df["当年完成度"]=(df["累计销售额"]/2200000*100).round(1)df["累计销售额"]=(df["累计销售额"]/10000)。round(2)df输出结果:可以看到最终结果截图中红色标注的数据内容已经计算完毕。绿色标注的表格比较简单,直接使用Pandas模块中的数据选择即可。在交互环境中输入以下命令:num=10df.iloc[num-7:num,:5]输出结果:该方法可以很容易的得到过去7天内某个日期的每日数据采集。自动生成日报使用Python实现自动化Word通常使用python-docx模块,批量生成Word文档一般有两种方法:使用add_paragraph()、add_table()等方法向Word文档添加各种内容。另一个就是我们这次要用到的,就是根据位置替换原来Word文档中的文本和表格数据。在交互式环境中输入以下命令:forindex,rowsindf.iterrows():ifindex>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]foriinrange(7):forjinrange(5):table.cell(i+1,j).text=str(df.iloc[i,j])doc.save(f"SalesDaily-{rows[0]}.docx")执行代码,输出结果:如上图,120条带记录的销售日报已经写好了。Python自动化办公有多神奇。完整代码获取方式:链接:https://pan.baidu.com/s/1gayOUOq_YCONvRmtNo0NIA提取码:p9iwPython因其语法简单易用,被誉为“最适合初学者学习的编程语言”“。对于工作中各种重复性的计算机工作,可以考虑使用Python将其转化为自动化程序。如果你是Python初学者,你会发现这篇文章的逻辑非常简单,你甚至可以改进它。比如python-docx模块在读取Word文档时有优势,但是在向模板写入文本时,可以考虑使用docxtpl模块(学一点Jinja2语法)。
