day07-openpyxl相关作业

该Python脚本用于比较两个Excel文件中学生信息表格的数据,提取相同人员的成绩,并将这些成绩通过电子邮件发送给学生。它使用openpyxl库读取Excel文件,smtplib和email库处理邮件发送。邮件内容包含学生的姓名、性别、各科成绩。
摘要由CSDN通过智能技术生成

对比两个excel文件的内容,将文件2中的人员在文件1中的各科成绩发送给他们

import os
import openpyxl
import os
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart

#读取文件

#打开文件1
if os.path.exists('file/python数据分析.xlsx'):
    wb = openpyxl.load_workbook('file/python数据分析.xlsx')
else:
    wb = openpyxl.Workbook
#打开文件2
if os.path.exists('file/python数据分析2.xlsx'):
    wb2 = openpyxl.load_workbook('file/python数据分析2.xlsx')
else:
    wb2 = openpyxl.Workbook()
#打开文件1的表“学生信息”
if '学生信息' not in wb.sheetnames:
    sheet = wb.create_sheet('学生信息')
else:
    sheet = wb['学生信息']
#打开文件2的表“学生信息”
if '学生信息' not in wb2.sheetnames:
    sheet2 = wb2.create_sheet('学生信息')
else:
    sheet2 = wb2['学生信息']

# sheet.cell(row,1).value == sheet2.cell(row, 1)
data = {}
data2 = {}
# lst = []
# lst1 = []
data_all = []
# for _ in range(2,sheet.max_column+1):
#     lst.append(sheet.cell(1,_).value)
#print(lst)

for i in range(2,sheet2.max_row+1):
    for j in range(2,sheet.max_row+1):
        # print(sheet.cell(j, 1).value, sheet2.cell(i, 1).value)
        if sheet.cell(j, 1).value == sheet2.cell(i, 1).value:
            data['英语'] = sheet.cell(j,2).value
            data['办公软件操作'] =sheet.cell(j,3).value
            data['电子商务'] = sheet.cell(j,4).value
            data['计算机基础'] = sheet.cell(j,5).value
            data['姓名'] = sheet2.cell(i,1).value
            data['email'] = sheet2.cell(i,4).value
            data['gender'] = sheet2.cell(i,2).value
            data2 = data.copy()
            data_all.append(data2)
#print(data_all)




wb.save('file/python数据分析.xlsx')
wb2.save('file/python数据分析2.xlsx')

#发送邮件
connect = smtplib.SMTP_SSL('smtp.qq.com',465)
connect.login('31*******@qq.com','i********gc')

for _ in data_all:
    # 构建邮件
    email = MIMEMultipart()
    email['Subject'] = Header('day07作业,发送成绩', 'utf-8').encode()
    email['From'] = 'L**<3******36@qq.com>'
    email['T0'] = '%s' % (_['email'])
    if _['gender'] == '男':
        gender = '先生'
    else:
        gender = '女士'

    msg = MIMEText('%s%s,你的成绩是:英语 %s, 办公软件操作 %s, 电子商务 %s, 计算机基础 %s' % (_['姓名'][0],gender,_['英语'], _['办公软件操作'], _['电子商务'], _['计算机基础']), 'plain')
    # b.将正文内容添加到邮件中
    email.attach(msg)

    # 发送邮件
    connect.sendmail('31*******6@qq.com', '%s' % (_['email']), email.as_string())

#关闭连接
connect.close()



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值