使用Python openpyxl为Excel添加条件值时遇查找问题求助
问题分析与修正方案
你的代码存在几个关键问题,导致无法正确匹配目标值并写入对应F列:
- 嵌套循环完全多余,外层遍历索引、内层又重复遍历整个E列,逻辑混乱
ce=+1是将ce赋值为1,并非自增操作,正确的自增写法是ce += 1- 要写入的是F列,对应openpyxl的列索引为6(你代码里写的3是C列)
- 符号
#未加引号,属于语法错误,需用字符串格式"#" - 循环内反复保存文件会降低效率,应统一在操作完成后保存
修正后的代码
from openpyxl import load_workbook # 加载工作簿与工作表,替换为你的实际工作表名称 wb = load_workbook("data.xlsx") ws = wb.active # 或指定具体表名,比如wb["Sheet1"] # 遍历E列所有单元格 for cell in ws['E']: # 匹配目标值19200 if cell.value == 19200: # 写入对应行的F列 ws.cell(row=cell.row, column=6).value = "#" # 统一保存文件 wb.save("data.xlsx")
额外优化建议
- 若需要匹配多个目标值(比如19000、19100……23000中的多个),可将目标值存入列表,用
if cell.value in [19200, 19500, 23000]:判断 - 可增加空值判断避免报错:
if cell.value is not None and cell.value == 19200:
内容的提问来源于stack exchange,提问作者Momoko
相关产品推荐
相关产品推荐

