2016-06-24 9 views
1

Ich versuche, eine Zeile in einem Excel-Blatt, das einen bestimmten Wert hat, zu finden und dann mit den Zellen in dieser Zeile arbeiten.Verwenden Sie Excel-Zeile mit bestimmten Wert openpyxl

So zum Beispiel möchte ich die Zeile finden, die einen Wert von "Ja" in Spalte A hat. Ich habe versucht, dies mit dem folgenden Code (in der Hoffnung, es würde die Nummer der Zeile mit "Ja "drin), aber nichts gedruckt wird, wenn ich diesen Code versuchen:

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) 

Bitte, kann mit jemand helfen, was ich falsch mache

+0

Viel zu kompliziert. Suchst du nur eine einzelne Zelle? Oder haben Sie mehrere Suchvorgänge? –

+0

Ich suche nach einer einzelnen Zelle, um die Zeile zu identifizieren. Die Werte in einer Zeile könnten also lauten: Ja, Wert1, Wert2. Ich möchte diese Zeile identifizieren, indem ich die Zelle mit "Ja" suche und dann auf Value1 und Value2 zugreife. – ChrisG29

Antwort

1

Wenn Sie nur nach einem einzigen Wert suchen, ist dies der beste Ansatz.

Wenn Sie wahrscheinlich nach mehreren Werten suchen, ist es am besten, ein Wörterbuch mit Zellkoordinaten zu erstellen, das nach Wert codiert ist.

+0

Danke, das ist eine großartige Lösung – ChrisG29

0

folgende Arbeiten auf meiner Maschine, egal ob mit‚Ja‘ ist nach Zeile 5 oder nicht.

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

Danke, das funktioniert einwandfrei – ChrisG29