2016-06-24 11 views
1

特定の値を持つExcelシートで行を見つけようとしていて、その行のセルを処理しています。特定の値を持つExcelの行を使用するopenpyxl

たとえば、A列に「はい」の値を持つ行を探したいと思います。次のコードでこれを実行しようとしました(「No ")これで、私はこのコードをしようとすると、何も印刷されません取得します:

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) 

誰かが私は、私のマシン上に関係なく、間違った

+0

あまりにも複雑です。あなたはただ一つの細胞を探していますか?または、複数のルックアップがありますか? –

+0

私は行を識別するために単一のセルを使用するつもりです。そのため、行の値はYes、Value1、Value2のようになります。私はそれに "はい"と値1と値2にアクセスしてセルを見つけることによってその行を識別したい – ChrisG29

答えて

1

単一の値を探している場合は、これが最善の方法です。

sentinel = u"Yes" 

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

複数の値を探している可能性が高い場合は、値によってキー設定されたセル座標の辞書を作成するのが最適です。

+0

ありがとう、それは素晴らしい解決策です – ChrisG29

0

次作品をやっていると助けることができますしてください場合は、『はい』行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) 
+0

ありがとう、それは完全に動作します – ChrisG29

関連する問題