首页 > 系统相关 >基于Python-Windows环境的Excel页面截图并邮件正文发送

基于Python-Windows环境的Excel页面截图并邮件正文发送

时间:2023-12-26 16:16:45浏览次数:42  
标签:get Python Excel excel Windows conf msg mail smtp

截图模块

#截图模块
def get_snapshot():
    #定义变量
    #excel文件的绝对位置
    excel_file=r'E:\L.xlsx'
    #输出图片的绝对位置
    output_png_path=r'E:\L.png'
    #excel的sheet名称
    excel_tb='每日销售'

    #注意要装excel软件,否则会报错
    excel = win32.Dispatch('Excel.Application')
    wb = excel.Workbooks.Open(excel_file)
    ws = wb.WorkSheets(excel_tb)  # 打开工作簿

    # 示例:截图的起始终止格
    start_cell = "A1"
    end_cell = "B48"

    #存放图片在excel中,否则直接剪贴板会报错
    paste_cell= "Z99"

    ws.Range(f"{start_cell}:{end_cell}").CopyPicture()  # 变成图片
    ws.Paste(ws.Range(paste_cell))  # 将图片黏贴在excel中

    ws.Shapes(ws.Shapes.Count).Copy()  # 图片至剪贴板
    img = ImageGrab.grabclipboard()  # 从剪贴板获取图片
    img.save(output_png_path)  # 图片保存
    wb.Save()  # excel保存
    wb.Close()
    print('输出图片:'+output_png_path)

 

邮件正文发送图片,并附带附件

 1 def attach_mail_module(mail_title,mail_content,mail_to_list,mail_ccto_list,attachment,attachment_file_name):
 2     print('==进入attach_mail_module模块==')
 3     
 4     #读取配置与密码,所有邮件信息都从配置文件来
 5     conf_file='e:\\p.txt'
 6     conf = configparser.ConfigParser()
 7     conf.read(conf_file,encoding="utf-8")
 8     mail_conf="mail_address_info"
 9     
10     abnormal_mail_reciever = conf.get(mail_conf,"mail_reciever")
11     smtp_address_ip = conf.get(mail_conf,"smtp_address_ip")
12     smtp_port = int(conf.get(mail_conf,"smtp_port"))
13     login_user_name = conf.get(mail_conf,"login_user_name")
14     login_passwd = conf.get(mail_conf,"login_passwd")
15     send_mail_from = conf.get(mail_conf,"send_mail_from")
16 
17     #设置主题,收件人,抄送人
18     msg = MIMEMultipart('mixed')
19     msg['Subject'] = Header(mail_title,'utf-8')
20     msg['From'] = send_mail_from
21     msg['To'] = ",".join(to_list)
22     msg['cc'] = ','.join(ccto_list)
23     receive = to_list
24     receive.extend(ccto_list)
25 
26     #设置附件(可以是中文名)
27     att = MIMEText(open(attachment, 'rb').read(), 'base64', 'utf-8') 
28     att["Content-Type"] = 'application/octet-stream'
29     att.add_header("Content-Disposition", "attachment", filename=("gbk", "", attachment_file_name+".xlsx"))
30     msg.attach(att) 
31     
32     #设置图片
33     content=mail_content
34     html_img = f'<p>{content}<br><img src="cid:image1"></br></p>' # html格式添加图片
35     f = open(r"E:\LHD6_base.png", 'rb')  #打开图片
36     msgimage = MIMEImage(f.read())
37     f.close()
38     msgimage.add_header('Content-ID', '<image1>')  # 设置图片
39     msg.attach(msgimage)
40     msg.attach(MIMEText(html_img,'html','utf-8'))  # 添加到邮件正文
41 
42     #发送邮件
43     smtp = smtplib.SMTP()
44     smtp.connect(smtp_address_ip,smtp_port)
45     smtp.login(login_user_name,login_passwd)
46     smtp.sendmail(send_mail_from, receive , msg.as_string())
47     smtp.quit()
48     print('==attach_mail_module结束==\n')
View Code

 

标签:get,Python,Excel,excel,Windows,conf,msg,mail,smtp
From: https://www.cnblogs.com/castlevania/p/17928346.html

相关文章

  • python合成语音
      https://pythonjishu.com/tzzjavbepoesojm/下面是另一个示例:pipinstallpyttsx3pipinstallgtts将一个变量中的中文文本转换为语音,并使用pyaudio播放出来。因为pyaudio库在Windows环境下可能会有问题,所以建议在Linux或Mac环境下测试。importpyt......
  • 如何用 python 做个简单服务器
    在Python中,你可以使用内置的http.server模块创建一个简单的HTTP服务器。这个模块提供了一个轻量级的Web服务器,非常适合用于测试和学习目的。以下是创建一个简单服务器的步骤:1.导入必要的模块:首先,你需要导入http.server模块,该模块包含了用于创建HTTP服务器的类。importhttp.server......
  • Python为什么空字符串的逻辑值是True
    在Python中,空字符串(即'')的逻辑值被定义为True。这是因为Python中的逻辑值是基于所谓的"真值测试"规则进行判断的。根据这个规则,除了一些特定的值被认为是False之外,其他所有的值都被认为是True。在Python中,以下值被认为是False:-None-False-0(包括0.0和其他表示零的数值)-空的容器对象(......
  • 为什么python总是读取不到文件
    在Python中,当你尝试读取文件但却无法成功时,可能有几个常见的原因。下面将探讨一些可能导致Python无法读取文件的问题,并提供相应的解决方案。1.文件路径错误:当你提供给Python的文件路径不正确时,它将无法找到该文件。确保你提供的文件路径是准确的,包括文件名和文件所在的文件夹路径。......
  • Python 项目多维列表如何实现
    在Python中,可以使用多维列表来表示和处理具有多个维度的数据。多维列表实际上是一个列表的列表,其中每个内部列表代表一个维度。本文将介绍如何创建、访问和操作多维列表。创建多维列表要创建一个多维列表,可以使用嵌套的列表结构。每个内部列表代表一个维度,可以包含任意数量的元素。......
  • virtualbox安装windows10出现OOBE,卡在OOBE。
    参照https://zhuanlan.zhihu.com/p/419237209https://www.0z.gs/win/781.html文档https://learn.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/boot-windows-to-audit-mode-or-oobe?view=windows-11OOBE也就是OutofBoxExperience开箱即用体验。卡在OOBE跳......
  • windows自带便签如何常驻桌面?电脑便签怎么固定在屏幕上?
    上班族们每天面临着大量的工作任务,时常需要在繁杂的工作中快速记录琐事、任务清单等重要信息。这时候,一款能够常驻桌面的电脑便签软件能够为工作带来很大的帮助,可以有效简化工作流程,提高办公效率。那么,Windows自带便签如何常驻桌面?电脑便签又该如何固定在屏幕上呢?其实Windows电脑......
  • 【python爬虫课程设计】掌上高考——高校数据爬取+数据可视化
    一、选题的背景选择此选题是因为掌上高考是一个提供本科院校信息的网站,通过爬取该网站的数据,可以获取到各个本科院校的相关信息,如学校名称、所在地、专业设置等。通过对这些数据进行分析和可视化,可以帮助学生更好地了解各个本科院校的情况,为他们的升学选择提供参考。预期目标是通......
  • 【Python微信机器人】第六七篇: 封装32位和64位Python hook框架实战打印微信日志
    目录修整目前的系列目录(后面会根据实际情况变动):在windows11上编译python将python注入到其他进程并运行注入Python并使用ctypes主动调用进程内的函数和读取内存结构体调用汇编引擎实战发送文本和图片消息(支持32位和64位微信)允许Python加载运行py脚本且支持热加载利用......
  • maturin 方便发布基于rust 的python 包工具
    maturin是PyO3团队开发的,方便我们开发基于rust的python包,比如PyO3的使用文档中就使用了此工具安装&使用安装(可选,可以基于venv安装)可以基于pip以及pipxpipxinstallmaturin创建一个简单项目python-mvenv.venvsource.venv/bin/activatepipinstallmaturinmaturin......