#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. Всегда будут создаваться отдельные ячейки, если они не существуют. Возвращает либо одну ячейку, либо кортеж строк или столбцов. «»»
Ответ №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. Никогда не поздно получить немного дополнительных знаний, спасибо.