Comment utiliser un nom de champ ou de l'en-tête de colonne dans openpyxl?

Voir mon code ci-dessous. Ce code fonctionne très bien, mais je voudrais faire deux choses. Une seule chose est que j'ai fait si la déclaration ou beaucoup plus court que le réel par exemple. J'ai beaucoup de colonnes, comme cela, pas tous les uns à côté des autres. J'aimerais qu'elle soit plus courte. Aussi, parfois, je ne peut pas connaître exactement lettre de colonne.

Je veux donc savoir si il existe un moyen de savoir le nom de la colonne ou d'en-tête. Comme les valeurs qui seraient dans de très haut rang. Donc, je peux tester pour voir si c'est un de ces valeurs de toujours réaliser la fonction de la cellule si elle est dans la colonne spécifiée.
Je ne peux pas trouver openpyxl fonction pour ne nom de la colonne. Vous ne savez pas si il comprend que la première ligne est différent du reste. Je pense que peut-être si pas je peux essayer de faire le test sur la première ligne, mais ne comprends pas comment faire cela.

Donc, il y a un moyen de l'appel nom de la colonne? ou si il n'y a aucun moyen de l'appel nom de la colonne à tester, quelqu'un peut-il m'aider à faire vérifier sur la première ligne pour voir si elle a de la valeur? puis faire le changement sur la ligne correcte je suis? Est-il logique.

Ainsi, au lieu de code en disant:

if cellObj.column == 'H' or ...

Il dirait:

if cellObj.column_header == 'NameOfField or ...

Ou si pas possible de faire ça, alors:

if this cell has column where first row value is 'NameOfField' ...

S'il vous plaît aider avec la meilleure façon de le faire. J'ai regardé sur stackoverflow et dans le livre et le site de blog, mais ne semble pas être un moyen de l'appel nom de la colonne (et non de la lettre de la colonne).

for row in sheet.iter_rows():
 for cellObj in row:
    if cellObj.column == 'H' or cellObj.column == 'I' or cellObj.column == 'L' or cellObj.column == 'M':
        print(cellObj.value),
        if cellObj.value.upper() == 'OldValue1':
            cellObj.value = 1
            print(cellObj.value)
        elif cellObj.value.upper() == 'OldValue2':
            cellObj.value = 2
            print(cellObj.value)

OriginalL'auteur stahna | 2015-12-15