Python自动化办公:自动化表格汇总与邮件发送,告别重复性工作

我是智能取经人 2024-05-11 19:36:40

在日常的办公环境中,我们常常面临着一种既重复又繁琐的工作挑战:每个月都需要手动收集和整理来自各个城市分公司的经营数据表格。这些表格可能格式各异,内容繁多,包含销售额、成本、利润等关键信息,对于公司决策层来说至关重要。然而,手动处理这些表格不仅耗时耗力,而且容易出错,极大地影响了工作效率和数据的准确性。

想象一下,每个月的这个时候,你都需要打开数十个甚至上百个Excel文件,逐个查看、核对数据,然后将它们一一输入到一个新的汇总表格中。接下来,你还需要编写邮件,将这个汇总报告发送给领导和相关部门。这种机械式的重复工作不仅让人感到枯燥无味,而且很容易因为疏忽而引入错误。

为了打破这种办公瓶颈,提高工作效率和数据的准确性,我们可以借助Python进行自动化办公。通过编写Python脚本,我们可以轻松实现经营数据的自动汇总和邮件发送。这不仅能够节省我们大量的时间和精力,而且能够减少人为错误,提高数据的可靠性。

在接下来的内容中,我们将详细介绍如何利用Python实现经营数据的自动化汇总和邮件发送。首先,我们将介绍如何读取和处理来自不同分公司的经营数据表格;然后,我们将展示如何将处理后的数据汇总到一个新的表格中;最后,我们将演示如何自动发送带有附件的邮件给领导和相关部门。通过这个过程,你将看到Python在自动化办公中的强大功能,以及它如何帮助我们摆脱繁琐的重复工作,提高工作效率。

一、自动化汇总经营数据

处理流程

输入:多个具有相似数据结构的Excel工作簿。

处理:

使用Python脚本遍历指定文件夹中的所有Excel文件。从每个文件中提取特定的数据列。将提取的数据整合到一个新的pandas DataFrame中。输出:一个包含所有提取数据的新的Excel工作簿。

示例数据

假设我们需要从各个分支机构的年度报告中提取“营业收入”和“净利润”数据。文件名可能如下:

山东分公司财务报名.xlsx上海分公司财务报名.xlsx东北分公司财务报名.xlsx广东分公司财务报名.xlsx...

每个文件包含以下列:

日期营业收入净利润其他费用...

实战代码

import pandas as pd import os def batch_extract_data(columns, directory, output_filename): all_data = [] # 遍历指定文件夹中的所有Excel文件 for file in os.listdir(directory): if file.endswith('.xlsx'): file_path = os.path.join(directory, file) df = pd.read_excel(file_path, usecols=columns) # 添加文件来源信息,以便知道数据来自哪个分支机构 df['Source'] = os.path.splitext(file)[0] # 将数据添加到总数据列表中 all_data.append(df) # 将列表中的DataFrame合并成一个 all_data_frame = pd.concat(all_data, ignore_index=True) # 将汇总的数据输出到新的Excel文件 all_data_frame.to_excel(output_filename, index=False) # 调用函数 batch_extract_data(['日期', '营业收入', '净利润'], 'path_to_financial_reports', 'Consolidated_Financials.xlsx')

二、自动发送邮件给领导和相关部门

当我们完成了经营数据的汇总后,下一步就是将这个汇总报告发送给领导和相关部门。Python中的smtplib和email库可以帮助我们实现邮件的自动发送。

下面是一个简单的示例代码,用于发送带有附件的邮件:

import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.base import MIMEBase from email import encoders # 设置邮件服务器、发件人、收件人、邮件主题和正文 mailserver = 'smtp.163.com' # 发件人-填写自己的邮箱userName_SendMail = 'zdy15921159716@163.com' # 邮箱发件授权码-为发件人生成的授权码,详见下文userName_AuthCode = 'BOEFGGZHRAHEXGRN'receivers = ['boss_email@example.com', 'department_email@example.com'] subject = '经营数据汇总报告' body = '请查阅附件中的经营数据汇总报告。' # 读取要发送的附件文件 with open('summary_report.xlsx', 'rb') as attachment: part = MIMEBase('application', 'octet-stream') part.set_payload(attachment.read()) encoders.encode_base64(part) part.add_header('Content-Disposition', 'attachment; filename="summary_report.xlsx"') # 创建邮件对象并添加附件 msg = MIMEMultipart() msg['From'] = sender msg['To'] = ', '.join(receivers) msg['Subject'] = subject msg.attach(MIMEText(body, 'plain')) msg.attach(part) # 发送邮件 smtp = smtplib.SMTP_SSL(mailserver, port=465)smtp.login(userName_SendMail, userName_AuthCode)smtp.sendmail(userName_SendMail, ','.join(received_mail), msg.as_string()) smtp.quit()

163邮箱安全码设置【python代码中的密码使用这个而不是邮箱密码】

通过结合以上两个步骤,我们就可以实现经营数据的自动化汇总和邮件发送了。这将大大提高我们的工作效率和准确性,让我们有更多的时间专注于其他重要的工作。

0 阅读:2

我是智能取经人

简介:感谢大家的关注