You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python的Pandas修改Excel:邮件发送后更新客户状态

如何用Pandas更新Excel文件中的客户邮件状态

完全可以用Pandas实现这个需求,核心思路是读取Excel到DataFrame,在邮件发送完成后更新对应行的状态,再将DataFrame写回原文件(或指定文件),确保原有数据不丢失。

具体实现步骤

  • 读取Excel文件:用pd.read_excel()把目标Excel文件加载到DataFrame中。
  • 更新状态:在邮件发送成功的代码块内,修改DataFrame对应行的状态列(比如你的Acceptance status)为已发送标记,例如"已跟进"。
  • 保存文件:用df.to_excel()将更新后的DataFrame写回原文件,可选指定引擎保留Excel原有格式。

修改后的代码示例

结合你提供的自动化邮件代码,加入状态更新和保存逻辑:

import pandas as pd
import subprocess
import time
import pyautogui

# 假设你的常量定义在这里:NO_FOLLOWUP, MAIL_SUBJECT, MAIL_BODY, BD_FRESH_MAIL, CC等

# 1. 读取Excel文件到DataFrame
df = pd.read_excel("你的文件路径.xlsx")
DAYS_COUNT = df['Days \ncount'].tolist()

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:
        continue  # 用continue代替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=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.click(x=489, y=205)  # send_click
        time.sleep(1)
        # --- 邮件发送代码结束 ---
        
        # 2. 更新当前行的状态
        df.loc[i, 'Acceptance status'] = "已跟进"  # 替换为你需要的状态值
        
# 3. 保存更新后的DataFrame回Excel文件
# 若需保留原有格式,需提前安装openpyxl:pip install openpyxl
df.to_excel("你的文件路径.xlsx", index=False, engine='openpyxl')

注意事项

  • 文件路径:确保读取和保存的文件路径一致,也可先保存到临时文件验证后再覆盖原文件,避免数据丢失。
  • 格式保留:Pandas默认保存可能丢失Excel原有格式(如单元格样式、公式),使用openpyxl引擎可部分保留,复杂格式需求建议用xlwings库。
  • 异常处理:建议给邮件发送逻辑加try-except块,仅在邮件确认发送成功后更新状态,避免误操作。

内容的提问来源于stack exchange,提问作者Varadhan E

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 17:14:56