如何使用条件格式将pandas df.to_html表格式化为Outlook?

时间:2019-04-24 10:47:54

标签: python html python-3.x pandas outlook

我有一个代码,其中我从数据框中计算出几个值并生成一个HTML传递给Outlook。这个html也有一个dataframe表,我要格式化。但是 df.to_html 会生成一个未格式化的表,我想根据条件应用条件格式。

我想传递给Outlook的上述全部输出作为消息发送。

o = win32com.client.Dispatch("Outlook.Application")
Msg = o.CreateItem(0)
Msg.HTMLBody = '<html><body>Today is {aaj}.<br><b>Pandas Table Output :</b> <br>{ComputerList}<br></body></html>'.format(aaj=din , ComputerList=SystemList[['System Name','IP Address','Updated','Value','OS Type','Status']].to_html(header=True, index=False, border=None))
Msg.Display()

运行代码时,输​​出如下图所示 Current Output of code

我想为某列应用某些格式,例如border,单元格背景色或一列中的条形符号。 在阅读了多个页面后,我仍然无法执行此操作。 任何工作帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

您可以使用“pretty-html-table”包来为您完成工作。

代码看起来像这样,您可以在其中提供您选择的数据框:

from send_email import send_mail
from get_data import get_gdp_data
from pretty_html_table import build_table


def send_country_list():
    gdp_data = get_gdp_data()
    output = build_table(gdp_data, 'blue_light')
    send_mail(output)
    return "Mail sent successfully."


send_country_list()

更详细的解释可以查看:https://dev.to/siddheshshankar/convert-a-dataframe-into-a-pretty-html-table-and-send-it-over-email-4663