gspread или такой: помогите мне получить координаты ячейки (не значение)

Вопрос: Используя GSpread, у меня есть диапазон ячеек, возвращенный из электронной таблицы google, который имеет все его элементы примерно так: Я знаю, как получить отсюда значение ячейки: cell.value но я также хотел бы получить адрес (R1C1 в этом случае) отдельно. Это должно быть (R1, C1) или даже лучше, если я могу получить

Вопрос:

Используя GSpread, у меня есть диапазон ячеек, возвращенный из электронной таблицы google, который имеет все его элементы примерно так:

<Cell R1C1 ‘Sandero’>

Я знаю, как получить отсюда значение ячейки:

cell.value

но я также хотел бы получить адрес (R1C1 в этом случае) отдельно. Это должно быть (R1, C1) или даже лучше, если я могу получить его в формате (1,1) (может быть, с помощью словаря?)

Вы видите, что мне нужен адрес, потому что позже я объявлю график с этими значениями.

Я использую Python 2.7 и последнюю библиотеку Gspread.

Любая помощь была бы очень оценена.

Лучший ответ:

Лучший способ получить координаты ячеек – использовать row свойств экземпляра ячейки и col. Таким образом, ваш код может быть упрощен:

for cell in cell_list: print cell.value print «Row:», cell.row, «Column:», cell.col

Чтобы получить кортеж, просто заверните его в скобки: (cell.row, cell.col).

Поскольку я являюсь автором gspread, я обновил страницу библиотеки, чтобы дать понять, как получить сотовые координаты. Спасибо, что указали недостающую часть.

Ответ №1

Через несколько часов мне удалось проделать грязную работу самостоятельно.

Поэтому у меня есть данные в диапазоне ячеек, полученных из уже открытой электронной таблицы google:

cell_list = worksheet.range(‘A1:J8’)

Это содержит <Cell R1C1 ‘Sandero’> но также <Cell R1C2 ’23’> и так далее.

Теперь, чтобы получить из части <Cell R1C1 координаты (1,1), которые я буду использовать для создания графика позже в моем проекте, я понял, что лучший способ <Cell R1C1:

for cell in cell_list: # will check all elements of the worksheet range A1:J8 print cell # for example at one point this is <Cell R1C1 ‘Sandero’> print cell.value # Sandero cella = re.findall(r’d+’,str(cell)) # will take only numbers from <Cell R1C1 ‘Sandero’> print cella[:2] # will give you the first two elements of list cella. #In this case ‘1’,’1′. This is exactly what I need. # to specify [:2] it important if it would be <Cell R1C2 ’23’>. # Otherwise cella would return ‘1’,’2′,’23’. Nasty. # I need only coordinates to use them as index in graf.

Тогда будьте осторожны, чтобы ссылаться на мои корнаты как int(cella[0]) и int(cella[1]) потому что я имел их как строки из re.findall(r’d+’,str(cell))

Я считаю, что мое решение очень грязное и сложное, но, по крайней мере, оно работает. Я все еще жду, когда этот стек переполнится, поэтому я надеюсь, что у кого-то есть лучшая идея.

Оцените статью
Добавить комментарий