日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

python拆分excel的sheet为单文件_python拆分Excel表格并发送邮件

發布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python拆分excel的sheet为单文件_python拆分Excel表格并发送邮件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

工作中經常會出現需要將數據按一定的條件拆分并分發給不同的收件人的情況,今天就來給大家分享一下如何使用python拆分Excel表格并分發郵件。

以下表(2019年下半年銷量數據表)數據為例:

首先我們需要一張包含收件人郵箱列表的Excel表格,具體數據如下圖所示:

具體代碼:

#導入模塊

import pandas as pd

from email.mime.text import MIMEText

from email.mime.application import MIMEApplication

from email.mime.multipart import MIMEMultipart

from email.header import Header

import smtplib

#定義編寫郵件函數

def create_email(email_from,email_to,email_subject,email_text,annex_path,annex_name):

#發件人,收件人,主題,正文,附件地址,附件名稱

#創建一個帶附件的實例

message=MIMEMultipart()

#生成發件人名稱

message['From']=Header(email_from,'utf-8')

#生成收件人名稱

message['to']=Header(email_to,'utf-8')

#生成郵件主題

message['Subject']=Header(email_subject,'utf-8')

#郵件正文內容

message.attach(MIMEText(email_text,'plain','utf-8'))

#構造附件

xlsxpart=MIMEApplication(open(annex_path, 'rb').read())

xlsxpart.add_header('Content-Disposition', 'attachment', filename=('gbk', '', annex_name))

#注意:此處annex_name要轉換為gbk編碼,否則中文會有亂碼。

#將附件內容插入郵件中

message.attach(xlsxpart)

#返回郵件

return message

#定義發送郵件函數

def send_email(sender,password,receivers,msg):

#發件人郵箱,密碼,收件人郵箱列表,郵件內容,發送郵件的函數

try:

#找到發件人郵箱的服務器地址,以加密形式發送 server=smtplib.SMTP_SSL("smtp.qq.com", 465)

#發件人郵箱服務器地址,端口(這是QQ郵箱的SMTP服務器地址和端口)

#server.ehlo()

#登錄賬號

server.login(sender,password)#發件人郵箱賬號,密碼

#發送郵件 server.sendmail(sender,receivers,msg.as_string())

print('郵件發送成功')

server.quit()#關閉連接

except Exception:

print(traceback.print_exce())

#讀取收件人列表數據

data=pd.read_excel(r'.\收件人列表.xlsx',encoding='gbk')

#拆分工作簿數據

workbook_path=r".\2019年下半年銷量數據表.xlsx"

split_column='省份'

file_path=r".\拆分數據\2019年下半年銷量數據表"

#讀取工作簿數據

df=pd.read_excel(workbook_path,encoding='gbk')

#將拆分列轉化為列表

split_list=list(set(df[split_column]))

#拆分工作簿

for i in split_list:

dff=df[df[split_column]==i]

#拆分后文件的完整保存路徑

filename=file_path+"——"+i+".xlsx"

#保存工作簿

dff.to_excel(filename,sheet_name=i,index=False)#i ndex=False忽略索引

print("工作簿拆分完成")

#發送郵件

for j in split_list:

my_email_from='XXXX'

my_email_to='拆分Excel表格并發送郵件'

my_email_subject=j+'2019年下半年銷量數據表.xlsx'

my_email_text='Dear all,\n\t附件為2019年下半年銷量數據表,請查收!'

my_annex_path=file_path+"——"+j+".xlsx"

my_annex_name=j+'2019年下半年銷量數據表.xlsx'

#調用編寫郵件函數

my_msg=create_email(my_email_from,my_email_to,my_email_subject,my_email_text,my_annex_path,my_annex_name)

my_sender='1049754823@qq.com'

my_password='usiaeeyfxceybaii'

my_receivers=list(data['收件人郵箱'][data['份']==j[0]

#調用發送郵件函數

send_email(my_sender,my_password,my_receivers,my_msg)

郵件發送效果如下:

注:使用第三方的SMTP服務發送郵件,需要先打開相應郵箱的SMTP服務,QQ郵箱配置方法如下圖:

使用Python SMTP發送郵件的其他方式可參考網址:

https://www.runoob.com/python/python-email.html

喜歡

分享

or

總結

以上是生活随笔為你收集整理的python拆分excel的sheet为单文件_python拆分Excel表格并发送邮件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。