我在Python中使用win32com.client发送电子邮件。
但是我希望电子邮件的正文是一个表格(HTML格式的表格),我可以先在Excel中进行,然后复制并粘贴(但如何?),或者直接编辑相应的Pandas数据框。
newMail.body = my_table
这是一个Pandas数据框架无法正常工作。
所以我想知道是否有更聪明的方法,例如将Excel与Outlook中的Outlook应用程序结合起来?
干杯,
答案 0 :(得分:3)
有关于如何在此处将Excel表格转换为HTML的解决方案:How do I save Excel Sheet as HTML in Python?,然后您只需将HTML放入电子邮件正文中。
评论中的每个请求:
在名为mytable.html
的文件中将表格的HTML格式化后,您可以将其放入电子邮件中:newMail.body = open("mytable.html").read()
答案 1 :(得分:0)
我正在回答旧任务,但它在搜索中排在首位,可能会有所帮助。
import win32com.client as win32
import pandas as pd
# Read A to D column and first 5 rows
df = pd.read_excel('yourfilepath.xlsx', index_col=False, nrows = 5, usecols = "A:D")
body = df.to_html()
outlook = win32.gencache.EnsureDispatch('Outlook.Application')
new_mail = outlook.CreateItem(0)
new_mail.To = 'person@email.com'
new_mail.HTMLBody = (body)
new_mail.Send()