如何修改Python脚本实现Pa_ID从指定Excel单元格读取并对应输出数据
解决方案
直接修改脚本,通过单元格对应关系列表批量处理指定位置的Pa_ID读取和数据写入,同时修正原脚本里的语法错误,完整代码如下:
import gopalamemo import datetime import pandas as pd import xlwings as xw # 修正语法:用等号赋值账号密码 username = "" password = "" wb = xw.Book(r'D:\PA DATA\DATA.xlsx') # 路径加r避免转义字符问题 sheet = wb.sheets[0] # 定义输入(Pa_ID所在单元格)和输出(数据写入起始单元格)的对应关系 cell_pairs = [ ("A1", "A2"), ("F1", "F2"), ("K1", "K2"), ("Q1", "Q2") ] # 修正日期格式:用datetime对象或者符合接口要求的字符串,这里用datetime示例 from_date = datetime.date(2020, 1, 1) to_date = datetime.date(2024, 1, 1) waiting_time = "15min" # 循环处理每一组单元格 for input_cell, output_cell in cell_pairs: # 读取Pa_ID,注意转成整数(如果接口要求整数类型) pa_id = sheet.range(input_cell).value if pa_id is None: print(f"{input_cell}单元格为空,跳过处理") continue # 确保Pa_ID是整数类型,避免接口报错 try: pa_id = int(pa_id) except ValueError: print(f"{input_cell}的内容不是有效数字,跳过处理") continue # 调用接口获取数据并写入Excel pa_data_his = pd.DataFrame(gopalamemo.pa_data(pa_id, from_date, to_date, waiting_time)) sheet.range(output_cell).value = pa_data_his # 可选:保存工作簿 wb.save()
关键改动说明
- 单元格对应关系列表:把需要处理的输入输出单元格配对存进列表,通过循环批量处理,避免重复写相同逻辑
- 修正语法错误:原脚本里
username : ""是错误语法,改成username = "";Excel路径加r前缀避免反斜杠转义问题 - 日期格式修正:原脚本
1-1-2020会被Python解析成整数运算(1减1减2020等于-2020),改成datetime.date对象或者接口要求的字符串格式,确保接口能正确识别日期 - 异常处理:增加了单元格为空、内容非数字的判断,避免脚本中途崩溃
- 批量循环:通过for循环遍历每一组单元格,自动完成读取Pa_ID、获取数据、写入对应位置的流程
内容的提问来源于stack exchange,提问作者Parveen Kumar
相关产品推荐
相关产品推荐

