как скопировать содержимое листа Excel и вставить его в текст письма (не в качестве вложения), используя Python - PullRequest
1 голос
/ 10 июня 2019

Я пишу скрипт на 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 прямо в теле письма.

1 Ответ

0 голосов
/ 10 июня 2019

Вы должны иметь возможность преобразовать файл 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>"""

Здесь - некоторый код того, кто использует python для преобразования файла excel в таблицу HTML. Я не проверял это внимательно, но кажется, что вы должны иметь возможность использовать его для создания функции convert_to_html () или иным образом адаптировать ее для ваших целей.

...