J'entre dans Python et j'essaie d'écrire un script qui imprime une cellule à partir d'un livre de travail Excel. J'ai une entrée que je veux ajouter 2 à la valeur pour qu'elle trouve la bonne cellule. Juste avoir un problème quand je mets la variable dans l'index. Pourriez-vous m'aider s'il vous plait?

J'ai essayé de regarder les autres exemples avec le même rappel, mais aucun ne répond à la question.

import openpyxl
wb = openpyxl.load_workbook('kids.xlsx')
sheet = wb["Sheet1"]

print("Type index of student")
find_student  = input()
val = int(find_student)
proper_index = val + 2
print(proper_index)

string_value = str(proper_index)
index_search = "'A" + string_value + "'"
print(index_search)



print(sheet[string_value].value)

Merci

0
James Novis 17 mars 2019 à 14:55

2 réponses

Meilleure réponse

Aha ... l'a résolu

#access cell data

let_us_see = ws.cell(row=proper_index, column=1).value
print(let_us_see)

Au lieu d'utiliser: print (sheet [string_value] .value), j'ai regardé sur le forum openpyxl qui a suggéré une autre façon d'accéder à la valeur depuis la cellule. Le code ci-dessus accepte la valeur entière de proper_index!

Merci pour tous vos gars et vos dudettes.

1
James Novis 17 mars 2019 à 23:04

Si la réponse s'applique toujours, sheet[string_value] renvoie toujours un tuple de cellules. Par conséquent, vous devez choisir la cellule que vous souhaitez, même si elle ne vous donne qu'un tuple singleton:

import openpyxl

wb = openpyxl.load_workbook('kids.xlsx')
sheet = wb["Sheet1"]

print("Type index of student")
val = int(
    input()
)

proper_index = val + 2
print(proper_index)

index_search = "A%s"%(proper_index,)
print(index_search)

print(sheet[string_value][0].value)

PS: Désolé d'être un peu en retard.

0
AlexNe 18 mars 2019 à 09:28