上个月,办公室小刘因为处理一个两千行的Excel表格,加班到晚上十点。她对着屏幕揉眼睛的样子,我看着都心疼。其实这些重复劳动,完全可以用几段代码解决。我把自己工作中实际用过的5个脚本分享出来,都是解决真实麻烦的。
第一个脚本:合并多个Excel文件。 很多同事月底要汇总各门店的销售表,每个文件单独打开复制粘贴。如果有50个文件,这事能干一整天。代码就写一个循环,读取文件夹里所有.xlsx后缀的文件,用pandas的concat函数拼在一起。自动跳过表头行,只保留一次标题。保存结果时文件名加上当前日期,不会覆盖旧文件。实测合并100个文件,耗时不到3秒。你只需要把文件放在同一个文件夹里,双击运行脚本就行。
第二个脚本:自动拆分表格。 反过来,有时候一个总表要按部门分开。比如人事部每个月要按门店导出员工花名册。手工筛选复制,手一抖就漏人。脚本按指定列(比如“门店名称”)分组,自动生成新文件,文件名用门店名命名。每个新文件里只包含该门店的数据。代码里加了判断,如果门店名里带斜杠或冒号,自动替换成下划线,避免保存时报错。这个脚本我写了十几年都没出过问题。
第三个脚本:批量清理数据。 让人头疼的是数据里混着多余空格、换行符、错位格式。比如身份证号变成科学计数法,结尾的“E17”把一串数字变成乱码。脚本里写一行代码,强制把整列格式设为文本。遇到全角数字自动转半角,中文括号替换成英文括号。还可以设定规则,比如删除单元格里所有不可见字符。保存时再设置单元格宽度自适应,打印出来不会断行。清理一万行数据,手动做要半天,脚本跑完眨个眼就完事。
第四个脚本:生成统计报表。 领导要的月报,通常是对某几列做求和、平均值、最大值。手动算完再做成图表,再复制到PPT里。脚本直接读取数据,用pandas的describe方法生成基本统计量。然后挑出三个关键指标(比如销售额总和、退货率、新客户数),自动画成柱状图。图片保存为PNG格式,分辨率设置在150dpi,手机上打开也清楚。你只需要改一下文件名和要统计的列名,其他都是自动的。
第五个脚本:定时发送邮件。 这个脚本配合上面几个脚本用。比如每天早上8点,自动运行清理脚本,然后生成最新报表,再用Python的smtplib库给指定邮箱发邮件。附件自动压缩成zip,减小体积。我特意加了几行代码,如果附件大于20MB,自动拆分成两个邮件发送。邮件标题里加日期,正文写一句“这是自动化报表,请查收”。地址簿写在外部txt文件里,换人直接改文件,不用改代码。部署在办公室的老电脑上,用任务计划程序设置每天定时启动。已经跑了两个月,从来没掉过链子。
这几个脚本都不复杂。网上找开源代码改改就能用。不需要懂编程原理,复制粘贴后改一下文件路径就行。关键是能让你从重复劳动里挣脱出来。你算算账,一个月少加班三四次,一年省下的时间够看三十本书了。别让Excel绑架你的时间。
夜雨聆风