Python自动化办公神器:3分钟搞定Excel批量处理,效率提升10倍!

B站影视 欧美电影 2025-09-04 20:10 1

摘要:你是否曾经为重复性的Excel处理工作熬夜加班?手动复制粘贴几十个表格,逐个修改格式,汇总数据到眼花缭乱?今天我要介绍的Python自动化技术,将彻底改变你的工作方式!

你是否曾经为重复性的Excel处理工作熬夜加班?手动复制粘贴几十个表格,逐个修改格式,汇总数据到眼花缭乱?今天我要介绍的Python自动化技术,将彻底改变你的工作方式!

假设你是公司的财务人员,每月需要处理100+个分公司报表,每个报表需要完成以下操作:

清洗无效数据行计算绩效指标调整格式并添加备注汇总到总表

手动操作需要3小时+,使用Python后,仅需3分钟

import osimport pandas as pd# 设置文件夹路径folder_path = './分公司报表/'# 获取所有Excel文件excel_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]# 创建一个空的DataFrame存储所有数据all_data = pd.DataFrame# 循环读取并合并文件for file in excel_files:file_path = os.path.join(folder_path, file)data = pd.read_excel(file_path)all_data = pd.concat([all_data, data], ignore_index=True)# 保存合并后的文件all_data.to_excel('汇总报表.xlsx', index=False)print('100个文件合并完成!')import pandas as pd# 读取Excel文件df = pd.read_excel('销售数据.xlsx')# 删除空值df = df.dropna# 计算每个销售员的总额和提成df['销售总额'] = df['单价'] * df['数量']df['提成'] = df['销售总额'] * 0.1# 保存处理后的文件df.to_excel('清洗后数据.xlsx', index=False)print('数据清洗与计算完成!')import pandas as pdimport matplotlib.pyplot as pltfrom openpyxl import load_workbookfrom openpyxl.drawing.image import Image# 读取数据df = pd.read_excel('销售数据.xlsx')# 生成销售趋势图plt.figure(figsize=(10, 6))df.groupby('月份')['销售额'].sum.plot(kind='line')plt.title('月度销售趋势')plt.savefig('销售趋势.png')# 将图片插入Excelwb = load_workbook('销售数据.xlsx')ws = wb.activeimg = Image('销售趋势.png')ws.add_image(img, 'H2')wb.save('带图表报表.xlsx')print('可视化报表生成完成!')import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.application import MIMEApplicationdef send_email_with_excel(recipient, subject, body, file_path):# 设置邮件内容msg = MIMEMultipartmsg['From'] = 'your_email@example.com'msg['To'] = recipientmsg['Subject'] = subject# 添加正文msg.attach(MIMEText(body, 'plain'))# 添加Excel附件with open(file_path, "rb") as f:attach = MIMEApplication(f.read, _subtype="xlsx")attach.add_header('Content-Disposition', 'attachment', filename=file_path)msg.attach(attach)# 发送邮件server = smtplib.SMTP('smtp.example.com', 587)server.starttlsserver.login('your_email@example.com', 'your_password')server.send_message(msg)server.quit# 使用示例send_email_with_excel('boss@company.com', '月度销售报表', '附件是本月销售报表,请查收。', '月度销售汇总.xlsx')print('邮件发送完成!')import scheduleimport timedef daily_report:# 这里放置数据处理代码print("每日报表已自动生成并发送!")# 每天上午9点执行schedule.every.day.at("09:00").do(daily_report)while True:schedule.run_pendingtime.sleep(1)✅ 节省大量时间(从3小时到3分钟)✅ 减少人为错误实现复杂数据处理自动生成和发送报表

本文代码已在Python 3.8 + openpyxl 3.0.9 + pandas 1.3.3环境下测试通过

来源:编程我最懂

相关推荐