当前位置:首页>python>我用Python每周省下8小时:5个让同事惊呆的办公自动化技巧

我用Python每周省下8小时:5个让同事惊呆的办公自动化技巧

  • 2026-10-11 05:36:58
我用Python每周省下8小时:5个让同事惊呆的办公自动化技巧

你是不是每天被Excel报表、Word合同、重复邮件折磨到怀疑人生?

我有个做财务的朋友,每周一要花4个小时合并5个部门的销售报表。格式不统一、数据重复、空值一堆……每次弄完都眼冒金星。

直到我给她写了个Python脚本,现在她点一下运行,3分钟搞定,剩下的时间用来摸鱼(不,是用来做数据分析)。

今天分享5个我在实战中总结的Python办公自动化技巧,全部附可直接运行的代码,看完就能落地。

一、Excel批量合并:3分钟搞定原本4小时的工作

职场中最耗时的莫过于合并多个Excel文件。手动复制粘贴不仅慢,还容易出错。

用pandas + openpyxl,一行代码读取,三行代码合并:

import pandas as pd import os from glob import glob  def merge_excel_files(folder_path, output_file):     all_data = []     excel_files = glob(os.path.join(folder_path, "*.xlsx"))     for file in excel_files:         df = pd.read_excel(file)         all_data.append(df)     combined_df = pd.concat(all_data, ignore_index=True)     combined_df.to_excel(output_file, index=False)     print(f"合并完成!共 {len(combined_df)} 条记录")  # 使用示例 merge_excel_files("月度数据", "年度汇总.xlsx")

效果:原本4小时的合并工作,现在3分钟搞定,而且零错误。

二、数据清洗自动化:告别手动删重复项

客户给的数据经常格式混乱:有空行、有重复、日期格式不统一……

这个清洗脚本可以一键处理:

import pandas as pd  def clean_data(file_path):     df = pd.read_csv(file_path)     # 删除空行     df = df.dropna()     # 删除重复     df = df.drop_duplicates()     # 格式标准化     df['phone'] = df['phone'].str.replace('-', '')     df['date'] = pd.to_datetime(df['date'])     df.to_csv('cleaned_data.csv', index=False)     return df  clean_data('messy_data.csv')

效果:原本每次30分钟的清洗工作,现在10秒完成。

三、Word批量生成:100份合同1分钟搞定

HR每个月要给新员工发合同,手动改名字、改日期、改薪资……累到手抽筋。

用python-docx批量生成,模板+数据=自动化:

from docx import Document import pandas as pd  def generate_contracts(template_path, data_path, output_folder):     df = pd.read_excel(data_path)     for _, row in df.iterrows():         doc = Document(template_path)         for para in doc.paragraphs:             para.text = para.text.replace('{{姓名}}', str(row['姓名']))             para.text = para.text.replace('{{薪资}}', str(row['薪资']))             para.text = para.text.replace('{{日期}}', str(row['日期']))         output_path = f"{output_folder}/合同_{row['姓名']}.docx"         doc.save(output_path)     print(f"已生成 {len(df)} 份合同")  generate_contracts('合同模板.docx', '员工名单.xlsx', '输出文件夹')

效果:100份合同从2小时缩短到1分钟。

四、邮件自动发送:定时推送不再忘

每周要给客户发进度报告,经常忙到忘记?

Python帮你定时自动发送:

import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart  def send_email(subject, body, to_list, attachment=None):     msg = MIMEMultipart()     msg['Subject'] = subject     msg['From'] = 'your_email@example.com'     msg['To'] = ', '.join(to_list)     msg.attach(MIMEText(body, 'html', 'utf-8'))          with smtplib.SMTP('smtp.example.com', 587) as server:         server.starttls()         server.login('your_email', 'your_password')         server.send_message(msg)     print(f"邮件已发送至 {len(to_list)} 位收件人")  send_email(     subject='项目进度更新',     body='本周完成:xxx<br>下周计划:xxx',     to_list=['team@example.com'] )

效果:配合Windows任务计划程序或Linux cron,实现完全自动化。

五、Pandas性能优化:处理大数据不再卡死

数据量一大,Pandas就卡死?试试这几招:

1. 用category类型压缩内存

df['province'] = df['province'].astype('category') # 内存从2.3GB降到412MB,降幅82%

2. 用eval替代apply,提速15倍

# 慢  df['new_col'] = df.apply(lambda row: row['a'] + row['b'] * row['c'], axis=1) # 快 df.eval('new_col = a + b * c', inplace=True)

3. 用Parquet替代CSV,读取快8.7倍

df.to_parquet('data.parquet', compression='snappy') df = pd.read_parquet('data.parquet')

据掘金博主"船长Talk"实测,用这5个技巧处理1.2亿行数据,时间从16小时压缩到23分钟。

写在最后

Python办公自动化的核心思路就一句话:把重复的事情交给代码,把思考的时间留给自己。

今天分享的5个技巧,覆盖了Excel处理、数据清洗、Word生成、邮件发送、性能优化,基本能解决80%的办公自动化需求。

你平时最耗时的重复工作是什么?欢迎在评论区聊聊,我帮你看看能不能用Python搞定。

本文部分技巧参考自掘金、CSDN、51CTO等平台热门文章,代码均经过实测可用。

最新文章

随机文章