首页 > 解决方案 > Python - 将 Excel 中的范围复制为图像并粘贴到 Outlook 电子邮件的正文中

问题描述

我对 Python 很陌生 - 我在将 Excel 中的范围复制为图像并将该图像粘贴到 Outlook 电子邮件正文中时遇到问题。请在下面查看我的代码:

import win32com.client as win32
from PIL import ImageGrab

xlApp = win32.gencache.EnsureDispatch('Excel.Application')


wb = xlApp.Workbooks.Open('U:\Reporting\Templates\Daily_Update_Template_v3.xlsm')
ws = wb.Worksheets('Summary')
win32c = win32.constants
ws.Range(ws.Cells(1,1),ws.Cells(83,14)).CopyPicture(Format= win32c.xlBitmap)
img = ImageGrab.grabclipboard()

Message = 'Hello World!'

outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = 'email@blaaaaa.com'
mail.Subject = 'Test'
mail.Body = img


mail.Send()

当我运行脚本时,我收到以下错误:

TypeError:“DibImageFile”类型的对象无法转换为 COM VARIANT(但可以获取该对象的 buffer())

谁能帮我理解?谢谢!

标签: pythonpython-imaging-librarywin32com

解决方案


推荐阅读