iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python自动化办公之Excel拆分并自动发邮件
  • 365
分享到

Python自动化办公之Excel拆分并自动发邮件

PythonExcel邮件 2023-05-14 21:05:34 365人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

需求需要向大约 500 名用户发送带有 excel 附件的电子邮件,同时必须按用户从主 Excel 文件中拆分数据以创建他们自己的特定文件,然后将该文件通过电子邮件发送给正确的用户需求解析大致的流程就是上图,先拆分 Excel 数据,提取出

Python自动化办公之Excel拆分并自动发邮件

需求

需要向大约 500 名用户发送带有 excel 附件的电子邮件,同时必须按用户从主 Excel 文件中拆分数据以创建他们自己的特定文件,然后将该文件通过电子邮件发送给正确的用户

需求解析

Python自动化办公之Excel拆分并自动发邮件

大致的流程就是上图,先拆分 Excel 数据,提取出对应的邮件地址和用户的数据信息,再自动添加到邮件的附件当中

代码实现

首先我们先来看下我们手中 Excel 的数据形式是怎么样的。

import datetime
import os
import shutil
from pathlib import Path
import pandas as pd
src_file = Path.cwd() / 'data' / 'Example4.xlsx'
df = pd.read_excel(src_file)
df.head()

Python自动化办公之Excel拆分并自动发邮件

可以看出,CUSTOMER_ID 就是那个唯一的用户 ID,下面我们以该字段来分组,得到如下数据。

customer_group = df.groupby('CUSTOMER_ID')
for ID, group_df in customer_group:
print(ID)
>>>Output>>>
A1000
A1001
A1002
A1005
...

我们再来看下用户 A1005 所对应的数据形式。

Python自动化办公之Excel拆分并自动发邮件

接下来我们就为每一个用户创建一个 Excel,后面就可以作为附件使用。

attachment_path = Path.cwd() / 'data' / 'attachments'
today_string = datetime.datetime.today().strftime('%m%d%Y_%I%p')
attachments = []
for ID, group_df in customer_group:
attachment = attachment_path / f'{ID}_{today_string}.xlsx'
group_df.to_excel(attachment, index=False)
attachments.append((ID, str(attachment)))

我们来看下变量 attachments 所包含的数据吧。

[('A1000',
'c:\Users\luobo\notebooks\2020-10\data\attachments\A1000_01162021_12PM.xlsx'),
('A1001',
'c:\Users\luobo\notebooks\2020-10\data\attachments\A1001_01162021_12PM.xlsx'),
('A1002',
'c:\Users\luobo\notebooks\2020-10\data\attachments\A1002_01162021_12PM.xlsx'),
('A1005',
'c:\Users\luobo\notebooks\2020-10\data\attachments\A1005_01162021_12PM.xlsx')]

最后我们可以通过将 DataFrame 合并在一起来生成带有电子邮件地址的文件列表。

email_merge = pd.merge(df, df2, how='left')
combined = email_merge[['CUSTOMER_ID', 'EMAIL', 'FILE']].drop_duplicates()

得到的 DataFrame 如下

Python自动化办公之Excel拆分并自动发邮件

我们已经收集了客户名单、他们的电子邮件和附件,现在我们就可以用 Outlook 发送一封电子邮件了。

import win32com.client as win32
today_string2 = datetime.datetime.today().strftime('%b %d, %Y')
class EmailsSender:
def __init__(self):
self.outlook = win32.Dispatch('outlook.application')
def send_email(self, to_email_address, attachment_path):
mail = self.outlook.CreateItem(0)
mail.To = to_email_address
mail.Subject = today_string2 + ' Report'
mail.Body = """Please find today's report attached."""
mail.Attachments.Add(Source=attachment_path)
# Use this to show the email
#mail.Display(True)
# Uncomment to send
#mail.Send()

通过上面这个简单的类,我们可以生成电子邮件并附加 Excel 文件。

同时我们还注意到,这里使用了 win32,关于这个库的具体使用,我们在下次的文章中再具体说明吧。

email_sender = EmailsSender()
for index, row in combined.iterrows():
email_sender.send_email(row['EMAIL'], row['FILE'])

Python自动化办公之Excel拆分并自动发邮件

最后,我们再把所有生成的 Excel 存档,以备后面审查、比对等。

arcHive_dir = Path.cwd() / 'archive'
for f in attachments:
shutil.move(f[1], archive_dir)

至此,我们的编码结束,整体来看还是比较简单的。

以上就是python自动化办公之Excel拆分并自动发邮件的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: Python自动化办公之Excel拆分并自动发邮件

本文链接: https://www.lsjlt.com/news/205557.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python自动化办公之Excel拆分并自动发邮件
    需求需要向大约 500 名用户发送带有 Excel 附件的电子邮件,同时必须按用户从主 Excel 文件中拆分数据以创建他们自己的特定文件,然后将该文件通过电子邮件发送给正确的用户需求解析大致的流程就是上图,先拆分 Excel 数据,提取出...
    99+
    2023-05-14
    Python Excel 邮件
  • Python自动化办公之Excel拆分与自动发邮件
    目录需求需求解析代码实现需求 需要向大约 500 名用户发送带有 Excel 附件的电子邮件,同时必须按用户从主 Excel 文件中拆分数据以创建他们自己的特定文件,然后将该文件通过...
    99+
    2022-11-13
  • Python怎么实现Excel拆分并自动发邮件
    本篇内容介绍了“Python怎么实现Excel拆分并自动发邮件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!需求需要向大约 500 名用户发...
    99+
    2023-07-06
  • Python办公自动化之Excel(中)
    目录准备读取数据写入数据修改数据进阶用法最后准备 首先,我们需要安装依赖包 # 安装依赖包 pip3 install openpyxl 读取数据 使用 openpyxl 中的&...
    99+
    2022-06-02
    python 办公自动化 python 自动化excel
  • Python办公自动化之Excel介绍
    目录前言一、创建、打开excel文件二、工作表中的数据操作写数据读数据删除数据三、csv文件转xlsx前言 Python处理Excel的包是openpyxl,其支持操作的文件类型为:...
    99+
    2022-11-12
  • Python自动化办公之编写PDF拆分工具
    目录需求需求解析代码实现今天我们继续分享真实的自动化办公案例,希望各位 Python 爱好者能够从中得到些许启发,在自己的工作生活中更多的应用 Python,使得工作事半功倍! 需求...
    99+
    2022-11-13
  • Python自动化办公之群发邮件案例详解
    目录背景实现过程总结背景 想象一下,现在你有一份Word邀请函模板,然后你有一份客户列表,上面有客户的姓名、联系方式、邮箱等基本信息,然后你的老板现在需要替换邀请函模板中的姓名,然后...
    99+
    2022-11-13
  • python办公自动化之excel的操作
    目录准备xlrd 读取 Excelxlwt 写入 Excel进阶用法最后准备 使用 Python 操作 Excel 文件,常见的方式如下: xlrd / xlwt openpyxl Pan...
    99+
    2022-06-02
    python 办公自动化 python excel自动化
  • Python自动化办公之定时发送邮件的实现
    目录定时模块的使用schedule 模块的介绍schedule 模块各种时间用法schedule 的启动该章节为 Python自动化办公篇 的最后一章,通过定时任务发送邮件的方式学习...
    99+
    2022-11-11
  • Python自动化办公之邮件发送全过程详解
    使用Python实现自动化邮件发送,可以让你摆脱繁琐的重复性业务,可以节省非常多的时间。操作前配置(以较为复杂的QQ邮箱举例,其他邮箱操作类似) 单击设置-账号,滑倒下方协议处,开...
    99+
    2022-11-12
  • python实现自动化办公邮件合并功能
    经常使用word办公的小伙伴们经常会遇到邮件合并的任务,通常会将数量有限的表格中的信息通过word的邮件合并功能,自动生成word文档,操作熟练的技术员通常不到十分钟就可以合并几十份邮件。那么如果遇到成千上万份的邮件...
    99+
    2022-06-02
    python邮件合并 python 自动化办公
  • 如何实现Python办公自动化之Excel
    本篇内容介绍了“如何实现Python办公自动化之Excel”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!准备使用 Python 操作 Exc...
    99+
    2023-06-16
  • Python自动化办公之Excel数据的写入
    目录Excel 写入 - xlsxwriterxlsxwriter 的安装xlsxwriter 常用函数介绍初始化 excel 对象获取工作簿小实战上一章节我们学习了 excel 的...
    99+
    2022-11-11
  • python怎么实现自动化办公邮件合并功能
    本篇内容主要讲解“python怎么实现自动化办公邮件合并功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python怎么实现自动化办公邮件合并功能”吧!经常使用word办公的小伙伴们经常会遇到...
    99+
    2023-06-20
  • Python自动化办公实战案例详解(Word、Excel、Pdf、Email邮件)
    目录背景实现过程1)替换Word模板生成对应邀请函2)将Word邀请函转化为Pdf格式3)读取Excel表格中的姓名和邮箱4)自动发送邮件5)完整代码总结 背景 想象一下,现在你有一...
    99+
    2022-11-12
  • Python 自动化处理Excel和Word实现自动办公
    今天我来分享一些Python办公自动化的方法,欢迎收藏学习,喜欢点赞支持,欢迎畅聊。 Openpyxl Openpyxl 可以说是 Python 中最通用的工具模块了,它使与 Exc...
    99+
    2022-11-12
  • Python自动化办公之Excel数据怎么写入
    这篇文章主要介绍了Python自动化办公之Excel数据怎么写入的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python自动化办公之Excel数据怎么写入文章都会有所收获,下面我们一起来看看吧。Excel 写...
    99+
    2023-06-30
  • Python办公自动化Excel怎么实现
    这篇文章主要介绍“Python办公自动化Excel怎么实现”,在日常操作中,相信很多人在Python办公自动化Excel怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python办公自动化Excel怎...
    99+
    2023-06-22
  • Python自动化办公之读取Excel数据的实现
    目录前言Excel 读取 - xlrd常用函数介绍获取 excel 对象获取工作簿读取工作簿内容前言 之前的章节我们学习了 python 关于 word 文件相关操作的知识点,从今天...
    99+
    2022-11-11
  • Python自动化办公之创建PPT文件
    目录PPT 的创建python-pptx 的安装生成一个空的 PPTpython-pptx 的9种布局从这一章开始,将进入 PPT 文件的自动化操作。关于 PPT 自动化操作所要实现...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作