使用具有特定值 openpyxl 的 excel 行

Use excel row with specific value openpyxl

我试图在 excel sheet 中找到具有特定值的行,然后处理该行中的单元格。

因此,例如,我想在 A 列中找到值为 "Yes" 的行。我尝试使用以下代码执行此操作(希望它会打印行号其中包含 "Yes"),但是当我尝试此代码时没有打印任何内容:

wb = openpyxl.load_workbook('C:\rtemp\Names.xlsx')
ws = wb['Sheet5']
strValue="Yes"

for row in range(1, 5):
  for column in "A":
    cell_name = "{}{}".format(column, row)
    value= str(ws[cell_name].value)
    if value==strValue:
        rownum=row
        print(rownum)

有人可以帮助我做错什么吗

无论 "Yes" 是否在第 5 行之后,以下内容都适用于我的机器。

strValue="Yes"

for row in range(ws.max_row):
    for column in "A":
        cell_name = "{}{}".format(column, row+1)
        value= str(ws[cell_name].value)
        if value==strValue:
            rownum = row
            print(rownum)

如果您只查找单个值,这是最好的方法。

sentinel = u"Yes"

for row in ws:
    for cell in row:
        if cell.value == sentinel:
            print(cell.row) #
            break

如果您可能正在寻找多个值,那么最好创建一个以值作为键的单元格坐标字典。