Чтение Python из Excel: ошибка атрибута: объект ‘tuple’ не имеет атрибута ‘value’

#python #excel #tuples

#python #excel #кортежи

Вопрос:

Я только начинаю изучать Python и пытаюсь написать скрипт, который печатает ячейку из рабочей книги Excel. У меня есть входные данные, к которым я хочу добавить 2 к значению, чтобы оно находило нужную ячейку. Просто возникла проблема, когда я поместил переменную в индекс. Не могли бы вы помочь, пожалуйста?

Я пытался просмотреть другие примеры с тем же обратным вызовом, но ни один из них не отвечает на вопрос.

 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)
  

Спасибо

Комментарии:

1. Когда я меняю код на: print(sheet[‘A3’].value), он возвращает правильное значение

2. Попробуйте удалить » ‘ » при создании вашей строки.

3. пробовал это только сейчас, когда я запускаю код, я ввожу 1, string_value теперь возвращает A3, но я получаю ответ print (sheet[string_value].value) Ошибка атрибута: объект ‘tuple’ не имеет атрибута ‘value’

4. Следующим будет «dir(sheet[string_value])» и «type(sheet[string_value])». Просто чтобы посмотреть, какой метод возможен. Метод, который вы вызываете с помощью [ _ ], заключается в следующем: def __getitem__(self, key): «»»Удобный доступ по координатам в стиле Excel Ключом может быть координата одной ячейки ‘A1’, диапазон ячеек ‘A1: D25’, отдельные строки или столбцы ‘A’, 4 или диапазоны строк или столбцов ‘A: D’, 4: 10. Всегда будут создаваться отдельные ячейки, если они не существуют. Возвращает либо одну ячейку, либо кортеж строк или столбцов. «»»

5. bitbucket.org/openpyxl/openpyxl/src/…

Ответ №1:

Ага … решил это

 #access cell data

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

Вместо использования: print(sheet[string_value].value) я посмотрел на форуме openpyxl, который предложил другой способ доступа к значению из ячейки. Приведенный выше код принимает целочисленное значение proper_index!

Спасибо за всю вашу помощь, парни и пижонки.

Ответ №2:

Если ответ все еще применим, sheet[string_value] всегда возвращает кортеж ячеек. Следовательно, вы должны выбрать, какую ячейку вы хотите, даже если она дает вам только одноэлементный кортеж:

 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: Извините за небольшое опоздание.

Комментарии:

1. Никогда не поздно получить немного дополнительных знаний, спасибо.