我正在尝试使用Python中的panda库修改一个现有的Excel文件。
我将文件内容用于自动发送电子邮件,触发发送给客户的电子邮件
一旦邮件发送,我只想在excel文件中更新客户的状态
有没有办法用python中的panda库来做这个?
subprocess.Popen('C:\\Program Files (x86)\\Microsoft Office\\Office15\\OUTLOOK')
time.sleep(10)
for i in range(0, len(DAYS_COUNT)):
if df['Acceptance status'][i] in NO_FOLLOWUP:
pass
if df['Days \ncount'][i] >= 7 and df['Platform'][i] == "Email":
time.sleep(3)
print(df['Company Name/ \nEmail Address'][i])
send_to = df['Company Name/ \nEmail Address'][i]
pyautogui.click(x=25, y=244) # sent_click
time.sleep(1)
pyautogui.click(x=118, y=158) # search_sent_click
time.sleep(1)
pyautogui.click(x=286, y=74) # search_by_to_click
time.sleep(1)
pyautogui.write(df['Company Name/ \nEmail Address'][i])
time.sleep(2)
# pyautogui.click(x=207, y=254) # first_item_click
pyautogui.click(x=186, y=276) # first_item_click
time.sleep(1)
pyautogui.click(x=639, y=162) # forward_click
time.sleep(1)
pyautogui.write(f"{send_to};") # to_address
time.sleep(5)
pyautogui.press("tab")
pyautogui.write(f"{CC};") # cc_address
time.sleep(5)
pyautogui.press("tab")
pyautogui.tripleClick(x=607, y=252) # subject_line_remove_existing
subject_status = df['Acceptance status'][i].lower()
pyautogui.write(MAIL_SUBJECT[subject_status]) # subject
time.sleep(5)
pyautogui.press("tab")
pyautogui.press("tab")
mail_body_status = df['Acceptance status'][i].lower()
if df['Remarks'][i] == "economic times":
pyautogui.write(BD_FRESH_MAIL['economic_mail_body'])
else:
pyautogui.write(MAIL_BODY[mail_body_status]) # mail_body
time.sleep(5)
# pyautogui.press("delete")
# pyautogui.press("delete")
pyautogui.click(x=489, y=205) # send_click
time.sleep(1)
一旦邮件发送,我只想在excel文件中更新客户的状态
并保存它而不会丢失excel文件中的数据
3条答案
按热度按时间r6l8ljro1#
我建议你使用Pandas
DataFrame
数据结构,你可以使用read_csv
函数读取excel文件,然后使用DataFrame.at
函数设置一个新的值。更新后,您可以使用
to_csv
函数传递新文件路径保存数据框,或使用相同路径覆盖旧excel文件。关于
.at
函数的Pandas文档:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.at.htmljm81lzqq2#
当然可以!不过Pandas使用openpyxl来完成一些excel特有的操作,因此您可以直接使用该库。
您应该能够在所需的触发器操作之后插入Excel操作代码。
使用panda和openpyxl将excel表格读入内存的例子。让我们知道你还想做什么!
https://openpyxl.readthedocs.io/en/stable/tutorial.html
P.s.您可以通过win32 com库以编程方式使用outlook来简化(并防止错误)pyautogui操作,而不是使用GUI。
通过Python发送Outlook电子邮件?
zzlelutf3#
如果我需要更多的控制,我使用
openpyxl
来编写excel文件,否则就使用pd.to_excel(),这只是一个大概的想法:或
如果您正处于需要首先更新df的阶段(仅举一例):