我正在编写一个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的内容直接添加到电子邮件正文中。
答案 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()函数,或者以其他方式使其适应您的目的。