Olá Marina, como você está?
Peço desculpas pela demora em obter um retorno.
Para buscar endereços de e-mail de uma tabela no Excel, podemos utilizar a biblioteca pandas
. A partir dela, carregar a tabela em um dataframe
e acessar as colunas que contém os e-mails. Com isso, você terá uma lista com os e-mails que pode ser utilizada para preencher o campo "To" (para) do e-mail. A biblioteca pandas
pode ser instalada executando o comando abaixo no terminal:
pip install pandas
Implementação do código
import pandas as pd
# Carrega a tabela em um dataframe
df = pd.read_excel('caminho_do_arquivo.xlsx')
# Acessa a coluna que contém os e-mails
emails = df['coluna_de_emails'].tolist()
Já para inserir uma tabela do Excel no corpo do e-mail, podemos utilizar a biblioteca openpyxl
para ler o arquivo e extrair as informações da tabela. A biblioteca openpyxl
pode ser instalada executando o comando abaixo no terminal:
pip install openpyxl
Implementação do código
import openpyxl
# Carrega o arquivo Excel
workbook = openpyxl.load_workbook('caminho_do_arquivo.xlsx')
# Seleciona a planilha que contém a tabela
worksheet = workbook['nome_da_planilha']
# Extrai os dados da tabela
tabela = []
for row in worksheet.iter_rows(values_only=True):
tabela.append(row)
# Formata a tabela em HTML para ser inserida no corpo do e-mail
tabela_html = '<table>'
for row in tabela:
if row != None:
tabela_html += '<tr>'
for cell in row:
if cell != None:
tabela_html += f'<td>{cell}</td>'
if row != None:
tabela_html += '</tr>'
tabela_html += '</table>'
No código acima, a tabela é formatada em HTML na variável tabela_html
que pode ser utilizada para preencher o corpo do e-mail. Basta substituir a parte que define o corpo do e-mail no seu código original para incluir a tabela:
email.HTMLBody = f"""
<p>Prezados, os nomes abaixo ainda não realizaram o callback</p>
{tabela_html}
<p>Abs,</p>
"""
Espero ter ajudado. Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.
Em caso de dúvidas estou à disposição.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!