如何使用python复制Excel工作表的内容并将其粘贴到电子邮件正文中(不作为附件)。

时间:2019-06-10 14:39:10

标签: python win32com

我正在编写一个Python脚本来发送电子邮件。现在它正在发送一个excel文件作为附件,但是我想发送包含excel文件内容的正文的电子邮件。就像用颜色,格式等复制excel文件的内容,然后将其粘贴到电子邮件正文中一样。

import win32com.client
from openpyxl import load_workbook 
import pandas as pd 
o = win32com.client.Dispatch("Outlook.Application") 
Msg = o.CreateItem(0)

Msg.To = "abc@gmail.com"

Msg.CC = "xyz@gmail.com" 
Msg.BodyFormat = 2 
Msg.HTMLBody = """
<html>
<body>
   <p>Hello All,<br>
       <br>
       Test HTML mail body from Python
    </p>
  </body>
</html>"""
Msg.Subject = "Automation Test" 
attachment1 = "D:\Demo.xlsx" 
Msg.Attachments.Add(attachment1) 
Msg.Send()

此代码可以正常工作,但我无法弄清楚如何将excel的内容直接添加到电子邮件正文中。

1 个答案:

答案 0 :(得分:0)

您应该能够将excel文件转换为HTML表,然后将其包含在您的电子邮件中,如下所示(如果您复制粘贴,因为我尚未定义convert_to_html()函数,将无法使用) :

wb = load_workbook(filename = 'D:\Demo.xlsx')
html_table = convert_to_html(wb)

Msg.HTMLBody = """
<html>
<body>
   <p>Hello All,<br>
       <br>
       Test HTML mail body from Python
    </p>""" + html_table + """
  </body>
</html>"""

Here是使用python将excel文件转换为HTML表的某人的一些代码。我还没有仔细检查过它,但是似乎您应该可以使用它来制作convert_to_html()函数,或者以其他方式使其适应您的目的。