【办公类110-05】20260807园园通小班“待补充”户籍地址自动修改成为真实地址(Python+EXCEL)

发布时间:2026/8/18 19:16:36
【办公类110-05】20260807园园通小班“待补充”户籍地址自动修改成为真实地址(Python+EXCEL) 一、背景需求通知要求8月7日前把园园通新小班建班、幼儿分班、信息完善待处理问题完成。为了取消标红我用了一个批量填写“假地址”的方法。确保标红的内容都被填全。【办公类110-04】20260806园园通小班分班后“待处理问题”批量信息、默认省市区、待添加地址https://mp.csdn.net/mp_blog/creation/editor/163531430其他数据重要性不大户籍地址是最重要的必须要填写正确目前“园园通”里面的外省户籍地址都是“待补充”二、数据收集因为幼儿纸质报名表上没有“外省户籍地址”只有外省省连外省市、外省区也没有。组长说她可以马上向家长收集“户籍地址”所以组长让小班组员去问家长要名单。我用接龙管家做了一套既然做了表单我又添加一个“独生子女统计”这个模版发给组长让组员们复制。小班组员们打电话来问“我不会把里面的姓名改成我们班孩子你能帮我改一下吗”之前正好收集了18个班级姓名表单里面有所有托班、小班的幼儿姓名、性别我希望在幼儿姓名前面添加“学号”就在“共享表单”里做一个学号和姓名的连接复制整列“学号姓名”打开接龙管家模版设置名单把包含班级名字的接龙表单发给班主任再抄送管理员权限三、表单下载组长速度最快打开表单里面有所有需要填写的项目虽然其他信息也要修改我都是默认选否、默认非农-城市但最重要的是先修改“户籍地址”从表格里看我需要读取A列“姓名”和E列“户籍地址” 园园通小班孩子分班后补全信息 1.外省户口孩子更新地址只更新地址把待更新改掉 3.Python模拟鼠标点击园园通按钮进行分班 4.前期已经3101搜索过了。 import openpyxl import pyautogui import time import pyperclip import pygetwindow as gw # 1. 找到VSCode窗口匹配标题含 Visual Studio Code vscode_wins gw.getWindowsWithTitle(Visual Studio Code) if not vscode_wins: print(未找到VSCode窗口请先打开VSCode再运行) else: win vscode_wins[0] # 自动最小化VSCode win.minimize() print(VSCode已自动最小化你有5秒时间移动鼠标到目标位置) time.sleep(5) # 等待5秒给你放鼠标 import random # 随机休眠1~3秒带小数模拟真人操作 def rand_sleep(): t random.uniform(2, 3) time.sleep(t) # file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\20260805班级信息表.xlsx file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\20260806小1班圆圆通信息补全(1).xlsx wb openpyxl.load_workbook(file_path) # 读取表格 for sheet_name in wb.sheetnames: ws wb[sheet_name] for row in ws.iter_rows(min_row2, values_onlyTrue): # 从第二行开始读取姓名 # for row in ws.iter_rows(min_row24, values_onlyTrue): # 如果出问题断了从第X行读取孩子姓名 if len(row) 4: continue name row[0] if not name or str(name).strip() : continue address row[4] # class_name row[1] # garden_name row[1] # data_list.append([class_name, name]) print(name) print(address) # 点击姓名栏 pyautogui.click(861,376) # 1. 复制指定文字到剪贴板 # print(写入姓名:,name) pyperclip.copy(name) # 2. 模拟CtrlV粘贴 pyautogui.hotkey(ctrl, v) rand_sleep() # 延迟2秒切换窗口 # 搜索 pyautogui.click(758,497) rand_sleep() # 编辑 pyautogui.click(1652,671) time.sleep(3) # 模拟滚动到底部 pyautogui.click(1652,671) for _ in range(2): pyautogui.scroll(-1000) rand_sleep() # time.sleep(0.3) # 每滚轮一下间隔0.3秒 # 户籍地址点击三次 for i in range(3): pyautogui.click(1404,473) rand_sleep() # 1. 复制指定文字到剪贴板 # print(写入姓名:,name) pyperclip.copy(address) # 2. 模拟CtrlV粘贴 pyautogui.hotkey(ctrl, v) rand_sleep() # 延迟2秒切换窗口 # 下移到底部 for _ in range(1): pyautogui.scroll(-1000) rand_sleep() # 确认回到最初的界面 pyautogui.click(1027,857) time.sleep(5) # 保存时间长一点 # 自动最大化VSCode win.maximize() print(VSCode已自动最大化程序结束)因为幼儿信息保密所以不能展示图片或视频。反正我使用代码读取小1班的姓名和对应地址顺利将“待补充”批量改成“正确地址”小3班老师也很快发来了接龙表单表单路径修改一下 园园通小班孩子分班后补全信息 1.外省户口孩子更新地址只更新地址把待更新改掉 3.Python模拟鼠标点击园园通按钮进行分班 4.前期已经3101搜索过了。 import openpyxl import pyautogui import time import pyperclip import pygetwindow as gw # 1. 找到VSCode窗口匹配标题含 Visual Studio Code vscode_wins gw.getWindowsWithTitle(Visual Studio Code) if not vscode_wins: print(未找到VSCode窗口请先打开VSCode再运行) else: win vscode_wins[0] # 自动最小化VSCode win.minimize() print(VSCode已自动最小化你有5秒时间移动鼠标到目标位置) time.sleep(5) # 等待5秒给你放鼠标 import random # 随机休眠1~3秒带小数模拟真人操作 def rand_sleep(): t random.uniform(2, 3) time.sleep(t) # file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\20260805班级信息表.xlsx # file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\20260806小1班圆圆通信息补全(1).xlsx file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\20260806小3班圆圆通信息补全.xlsx wb openpyxl.load_workbook(file_path) # 读取表格 for sheet_name in wb.sheetnames: ws wb[sheet_name] for row in ws.iter_rows(min_row2, values_onlyTrue): # 从第二行开始读取姓名 # for row in ws.iter_rows(min_row24, values_onlyTrue): # 如果出问题断了从第X行读取孩子姓名 if len(row) 4: continue name row[0] if not name or str(name).strip() : continue address row[4] # class_name row[1] # garden_name row[1] # data_list.append([class_name, name]) print(name) print(address) # 点击姓名栏 pyautogui.click(861,376) # 1. 复制指定文字到剪贴板 # print(写入姓名:,name) pyperclip.copy(name) # 2. 模拟CtrlV粘贴 pyautogui.hotkey(ctrl, v) rand_sleep() # 延迟2秒切换窗口 # 搜索 pyautogui.click(758,497) rand_sleep() # 编辑 pyautogui.click(1652,671) time.sleep(3) # 模拟滚动到底部 pyautogui.click(1652,671) for _ in range(2): pyautogui.scroll(-1000) rand_sleep() # time.sleep(0.3) # 每滚轮一下间隔0.3秒 # 户籍地址点击三次 for i in range(3): pyautogui.click(1404,473) rand_sleep() # 1. 复制指定文字到剪贴板 # print(写入姓名:,name) pyperclip.copy(address) # 2. 模拟CtrlV粘贴 pyautogui.hotkey(ctrl, v) rand_sleep() # 延迟2秒切换窗口 # 下移到底部 for _ in range(1): pyautogui.scroll(-1000) rand_sleep() # 确认回到最初的界面 pyautogui.click(1027,857) time.sleep(5) # 保存时间长一点 # 自动最大化VSCode win.maximize() print(VSCode已自动最大化程序结束)25个孩子大约12分钟小4班的表单来了这份不是我设计的模版班主任收集了一些幼儿的基础信息家长自己填写的省市就很不完整缺少区还是要用接龙管家里面的“省市区”不过地址有的这个文件上有个图标看看Python能不能识别结果是可以显示图片地址修改了还有一个外省的“市”“区”接龙表单里我们收集了家长填写的省市区如何拆分成开来并且能 园园通小班孩子分班后补全信息 1.外省户口孩子更新地址只更新地址把待更新改掉 3.Python模拟鼠标点击园园通按钮进行分班 4.前期已经3101搜索过了。 import openpyxl import pyautogui import time import pyperclip import pygetwindow as gw # 1. 找到VSCode窗口匹配标题含 Visual Studio Code vscode_wins gw.getWindowsWithTitle(Visual Studio Code) if not vscode_wins: print(未找到VSCode窗口请先打开VSCode再运行) else: win vscode_wins[0] # 自动最小化VSCode win.minimize() print(VSCode已自动最小化你有5秒时间移动鼠标到目标位置) time.sleep(5) # 等待5秒给你放鼠标 import random # 随机休眠1~3秒带小数模拟真人操作 def rand_sleep(): t random.uniform(2, 3) time.sleep(t) # file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\20260805班级信息表.xlsx # file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\20260806小1班圆圆通信息补全(1).xlsx # file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\20260806小3班圆圆通信息补全.xlsx # file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\小4学生信息收集表_群收集.xlsx file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\小5班圆圆通信息填写收集(1).xlsx wb openpyxl.load_workbook(file_path) # 读取表格 for sheet_name in wb.sheetnames: ws wb[sheet_name] for row in ws.iter_rows(min_row2, values_onlyTrue): # 从第二行开始读取姓名 # for row in ws.iter_rows(min_row21, values_onlyTrue): # 如果出问题断了从第X行读取孩子姓名 if len(row) 4: continue name row[0] # name row[4] # 小四班姓名在第五列 if not name or str(name).strip() : continue # address row[4] # address row[10] # 小四班户籍详细地址在第11列 address row[11] # 小五班户籍详细地址在第12列 # class_name row[1] # garden_name row[1] # data_list.append([class_name, name]) print(name) print(address) # 点击姓名栏 pyautogui.click(861,376) # 1. 复制指定文字到剪贴板 # print(写入姓名:,name) pyperclip.copy(name) # 2. 模拟CtrlV粘贴 pyautogui.hotkey(ctrl, v) rand_sleep() # 延迟2秒切换窗口 # 搜索 pyautogui.click(758,497) rand_sleep() # 编辑 pyautogui.click(1652,671) time.sleep(3) # 模拟滚动到底部 pyautogui.click(1652,671) for _ in range(2): pyautogui.scroll(-1000) rand_sleep() # time.sleep(0.3) # 每滚轮一下间隔0.3秒 # 户籍地址点击三次 for i in range(3): pyautogui.click(1404,473) rand_sleep() # 1. 复制指定文字到剪贴板 # print(写入姓名:,name) pyperclip.copy(address) # 2. 模拟CtrlV粘贴 pyautogui.hotkey(ctrl, v) rand_sleep() # 延迟2秒切换窗口 # 下移到底部 for _ in range(1): pyautogui.scroll(-1000) rand_sleep() # 确认回到最初的界面 pyautogui.click(1027,857) time.sleep(5) # 保存时间长一点 # 自动最大化VSCode win.maximize() print(VSCode已自动最大化程序结束)最后一个小2班 园园通小班孩子分班后补全信息 1.外省户口孩子更新地址只更新地址把待更新改掉 3.Python模拟鼠标点击园园通按钮进行分班 4.前期已经3101搜索过了。 import openpyxl import pyautogui import time import pyperclip import pygetwindow as gw # 1. 找到VSCode窗口匹配标题含 Visual Studio Code vscode_wins gw.getWindowsWithTitle(Visual Studio Code) if not vscode_wins: print(未找到VSCode窗口请先打开VSCode再运行) else: win vscode_wins[0] # 自动最小化VSCode win.minimize() print(VSCode已自动最小化你有5秒时间移动鼠标到目标位置) time.sleep(5) # 等待5秒给你放鼠标 import random # 随机休眠1~3秒带小数模拟真人操作 def rand_sleep(): t random.uniform(2, 3) time.sleep(t) # file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\20260805班级信息表.xlsx # file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\20260806小1班圆圆通信息补全(1).xlsx # file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\20260806小3班圆圆通信息补全.xlsx # file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\小4学生信息收集表_群收集.xlsx file_path rC:\Users\mhjg2\Desktop\20260805园园通小班分班\20260806小2班圆圆通信息补全模版.xlsx wb openpyxl.load_workbook(file_path) # 读取表格 for sheet_name in wb.sheetnames: ws wb[sheet_name] for row in ws.iter_rows(min_row11, values_onlyTrue): # 从第二行开始读取姓名 # for row in ws.iter_rows(min_row21, values_onlyTrue): # 如果出问题断了从第X行读取孩子姓名 if len(row) 4: continue name row[0][2:] # name row[4] # 小四班姓名在第五列 if not name or str(name).strip() : continue address row[4] # address row[10] # 小四班户籍详细地址在第11列 # address row[11] # 小五班户籍详细地址在第12列 # class_name row[1] # garden_name row[1] # data_list.append([class_name, name]) print(name) print(address) # 点击姓名栏 pyautogui.click(861,376) # 1. 复制指定文字到剪贴板 # print(写入姓名:,name) pyperclip.copy(name) # 2. 模拟CtrlV粘贴 pyautogui.hotkey(ctrl, v) rand_sleep() # 延迟2秒切换窗口 # 搜索 pyautogui.click(758,497) rand_sleep() # 编辑 pyautogui.click(1652,671) time.sleep(3) # 模拟滚动到底部 pyautogui.click(1652,671) for _ in range(2): pyautogui.scroll(-1000) rand_sleep() # time.sleep(0.3) # 每滚轮一下间隔0.3秒 # 户籍地址点击三次 for i in range(3): pyautogui.click(1404,473) rand_sleep() # 1. 复制指定文字到剪贴板 # print(写入姓名:,name) pyperclip.copy(address) # 2. 模拟CtrlV粘贴 pyautogui.hotkey(ctrl, v) rand_sleep() # 延迟2秒切换窗口 # 下移到底部 for _ in range(1): pyautogui.scroll(-1000) rand_sleep() # 确认回到最初的界面 pyautogui.click(1027,857) time.sleep(5) # 保存时间长一点 # 自动最大化VSCode win.maximize() print(VSCode已自动最大化程序结束)同样取0列和4列但是0列的姓名前面有两位数字学号切片从索引2开始提取纯姓名。三、修改后验证现在5个小班的带填写户籍地址都修改了我把园园通数据都导出来看看有没有没有填写的。r后继问题1、补全户籍地址、居住地址中的省市区大部分地址有只有路弄号2、修改小班外省户籍地址的省、市、区的正确地址之前默认选第一个3、补全少数民族实在很少所以就把5个EXCEL打开看看那几个是少数民族手动复制名字单独修改保存小班只有两位少数民族