Python处理Excel文件、发送邮件
2021/10/5 11:11:25
本文主要是介绍Python处理Excel文件、发送邮件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Python处理Excel文件、发送邮件
- Excel处理 -- openpyxl模块
- 创建文件并写入数据
- 打开已有文件并读取
- 选择和删除工作表
- 更改表格样式
- Python发送邮件 -- smtplib模块
Excel处理 – openpyxl模块
创建文件并写入数据
import datetime from openpyxl import Workbook wb = Workbook() # 在内存中实例化一个excel sheet = wb.active # 获取当前活跃的sheet sheet.title = "工作表1" # 更改sheet名 # 写入单条数据 sheet["B2"] = "姓名" sheet["C2"] = "性别" sheet["D2"] = "身高" # 写入多条数据,默认从有数据的下一行的第一列开始 sheet.append(["小明", "男", 178]) # 加入时间 sheet["A1"] = datetime.datetime.now().strftime("%Y-%m-%d") wb.save("excel_test.xlsx") # 保存excel
打开已有文件并读取
from openpyxl import Workbook, load_workbook wb2 = load_workbook("5+3成绩2020—2021.xlsx") # 加载已有文件到内存 print(wb2.sheetnames) # 打印所有sheet名 sheet = wb2["表2"] # 实例化表2 # 获取单元格值 print(sheet["B5"].value) # 获取单行单列的多个单元格值 for cell in sheet["B5:B10"]: print(cell[0].value) # 按行遍历整个excel for row in sheet: for cell in row: print(cell.value,end=",") print() # 按列遍历整个excel for column in sheet.columns: for cell in column: print(cell.value,end="") print() # 遍历指定行列,从A2到E10,从第二行到第十行,每行五列 for row in sheet.iter_rows(min_row=2, max_row=10, min_col=1, max_col=5): for cell in row: print(cell.value,end=" ") print()
选择和删除工作表
# sheet 名称可以作为 key 进⾏索引 ws3 = wb["New Title"] sheet = wb.worksheets[0] # 获得第1个sheet
# ⽅式⼀ wb.remove(sheet) # ⽅式⼆ del wb[sheet]
更改表格样式
from openpyxl import Workbook, load_workbook # 设置单元格需要导入类 from openpyxl.styles import Font, colors, Alignment wb = load_workbook("5+3成绩2020—2021.xlsx") sheet = wb.worksheets[1] # 设置字体模板:微软雅黑,12号字,斜体,蓝色 myfont = Font(name="微软雅黑", size="12", italic=True, color=colors.BLUE) sheet["B2"].font = myfont # 更改B2的字体样式 # 设置水平居中,垂直居中 sheet["B3"].alignment = Alignment(vertical="center", horizontal="center") # 第2行行高 sheet.row_dimensions[2].height = 40 # C列列宽 sheet.column_dimensions['C'].width = 30 wb.save("5+3成绩2020—2021.xlsx")
Python发送邮件 – smtplib模块
想实现发送邮件需经过以下几步:
1、登录邮件服务器
2、构造符合邮件协议规则要求的邮件内容 (email模块)
3、发送
Python对SMTP⽀持有 smtplib
和 email
两个模块, email
负责构造邮件,smtplib
负责发送邮件,它对smtp协议进行了简单的封装。。
import smtplib from email.mime.text import MIMEText # 邮件正文 from email.header import Header # 邮件头 # 登录邮件服务器 smtp_obj = smtplib.SMTP_SSL("<发件人SMTP服务器>", <发件人SMTP端口号>) # 发件人邮箱中的SMTP服务器,端口是25 smtp_obj.login("<发件人邮箱账号>", "<发件人邮箱SMTP服务动态密码>") # 括号中对应的是发件人邮箱账号、邮箱密码 # smtp_obj.set_debuglevel(1) # 显示调试信息 # 设置邮件头信息 msg = MIMEText("Hello, 小哥哥,新到学生妹,800一晚,可上门,约吗", "plain", "utf-8") # 正文内容,文本格式,utf8编码 msg["From"] = Header("来自你爸爸的问候", "utf-8") # 发送者 msg["To"] = Header("闺女", "utf-8") # 接收者 msg["Subject"] = Header("爸爸的问候", "utf-8") # 主题 # 发送,发件人地址,收件人列表,消息封装后转为String smtp_obj.sendmail("<发件人地址>", ["<收件人1地址>", "<收件人2地址>"], msg.as_string())
以QQ邮箱为例进行演示:
查找SMTP服务器和端口号
点击(什么是IMAP,它又是如何设置?)
故代码中这句话smtp_obj = smtplib.SMTP_SSL("<发件人SMTP服务器>", <发件人SMTP端口号>)
改为smtp_obj = smtplib.SMTP_SSL("smtp.qq.com", 465)
SMTP服务动态密码
点击生成授权码,或先关闭再重新开启SMTP服务,将邮箱账号和授权码写入代码中
发件人地址
即个人邮箱地址
收件人地址可以是个列表,填入多个人
这篇关于Python处理Excel文件、发送邮件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享