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

Python自动化循环异常:仅处理最后一行数据求助

问题描述

使用pyautogui实现从Excel向第三方软件自动录入数据:

  • Excel包含Item ID(第1列)、Customer Name、Order ID(第3列)三列数据
  • 需求:通过Item ID在软件中搜索,对应录入Order ID
  • 已定义start_row = 2、end_row = 2000限定处理范围,但代码仅处理第2000行,跳过1-1999行;仅当start_row与end_row同为2时可正常处理第2行
问题原因

核心问题是循环逻辑错误:

  • 原代码中,for循环仅完成了ItemID和OrderID的变量赋值,循环结束后才执行录入操作,导致最终只使用了循环最后一次赋值的(第2000行)数据
  • 完整的录入流程(搜索Item ID、录入Order ID)没有被包含在循环体内,无法逐行处理数据
修复后的代码
import pyautogui
import time
import openpyxl
import keyboard

# 加载Excel文件
file_path="D:/User/Documents/Order ID Edit/Recent_Transactions.xlsx"
workbook = openpyxl.load_workbook(file_path)
wsheet = workbook.active

start_row = 2
end_row = 2000

# 打开软件(手动登录进入物流模块后执行后续操作)
pyautogui.click(806,747)
# 给软件启动/切换窗口留缓冲时间
time.sleep(2)

# 逐行处理Excel数据
for i in range(start_row, end_row + 1):
    # --------------------------
    # 1. 搜索Item ID
    # --------------------------
    pyautogui.click(305,59)  # 点击搜索图标
    pyautogui.doubleClick(301,95)  # 选中搜索输入框
    # 清空搜索框(避免残留内容)
    keyboard.send('ctrl+a')
    keyboard.send('backspace')
    # 获取当前行的Item ID并输入
    item_id = wsheet.cell(row=i, column=1).value
    if item_id is None:
        print(f"第{i}行Item ID为空,跳过")
        continue
    pyautogui.write(str(item_id))
    keyboard.send('Enter')
    # 等待搜索结果加载
    time.sleep(1)

    # --------------------------
    # 2. 录入Order ID
    # --------------------------
    pyautogui.doubleClick(357,560)  # 点击Order ID编辑框
    # 清空原有内容
    keyboard.send('ctrl+a')
    keyboard.send('backspace')
    # 获取当前行的Order ID并输入
    order_id = wsheet.cell(row=i, column=3).value
    if order_id is None:
        print(f"第{i}行Order ID为空,跳过")
        continue
    pyautogui.write(str(order_id))
    keyboard.send('Enter')
    # 等待编辑保存
    time.sleep(0.5)

# --------------------------
# 3. 批量保存所有编辑
# --------------------------
pyautogui.click(355,64)  # 点击编辑图标
pyautogui.click(371,64)  # 点击保存图标
额外优化说明
  • 添加time.sleep():避免操作过快导致软件未响应,可根据实际软件运行速度调整延迟时间
  • 增加空值判断:跳过Item ID或Order ID为空的行,避免无效操作
  • 增加输入框清空操作:防止前一次输入内容残留影响当前操作

内容的提问来源于stack exchange,提问作者Robert Jin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 04:06:05