【发布时间】:2018-11-09 22:57:50
【问题描述】:
我想通过包含视觉效果而不仅仅是文本来创建更好的自动化报告。我想做的具体方法是通过win32com.client引用outlook.application。
我知道发送电子邮件的基础知识,我尝试阅读 VBA 参考资料,发现最接近的是View Object,但我正在寻找的是添加饼图、条形图等的能力.
我通过 GUI 知道,一旦从应用程序中弹出一条打开的消息,您可以Insert > Chart 并选择要加载到消息中的所需图表。
Outlook API 中有没有一种方法可以利用Insert Chart 窗口中提供的这些图形/图表?或者在消息样式/格式化方面,与应用程序相比,API 的可用功能相对有限?
这是创建/发送消息的基本代码,我想将这些视觉效果添加到消息正文中。
import win32com.client as win32
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'some@name'
mail.Subject = 'Subject'
mail.Body = 'Body'
# or
mail.HTMLBody = '<h2>HTML body</h2>'
mail.Send()
更新
我目前正在对其进行更多研究,但我发现它适用于 vba,它应该可以满足我的需求。我也一直在 excel 中处理图表对象。这是我需要理解的代码
Sub CopyAndPasteToMailBody()
Set mailApp = CreateObject("Outlook.Application")
Set mail = mailApp.CreateItem(olMailItem)
mail.Display
Set wEditor = mailApp.ActiveInspector.wordEditor
ActiveChart.ChartArea.Copy
wEditor.Application.Selection.Paste
End Sub
以下是我拥有的一些用于创建图表对象的基本代码:
from win32com import client
excel = client.Dispatch("excel.application")
excel.Visible = True
wb = excel.Workbooks.Add()
ws = wb.Worksheets.Add()
chs = ws.ChartObjects()
co = chs.Add(0,0,500,500)
更新
下面我已经回答了如何在 Excel 中生成图表并通过 Outlook 发送。它不是“Outlook API”,而是必须使用整个 Office。如果您像我一样因为缺少使用 win32com 与 Office 应用程序交互的文档而感到困惑,那是因为它都在 VBA Reference 中,只需要相应地转换为 python。
【问题讨论】:
标签: python vba outlook-restapi