Как из Пайтон подключиться к Гугл Таблице
  • Игорь Билецкий
  • 18.10.2021
  • 2 комментария

Для определенных задач возникает необходимость из Пайтон (Python) подключиться к Гугл Таблице. Например для того, чтобы получить данные из Google sheet или работать с Google Sheets API на Python. Тому, как это сделать и будет посвящен этот пост.

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


ITVDN Many GEO's

Я работаю с гугл таблицами и скриптами для автоматизации различных процессов, но не пишу на Python.

В ходе написания статьи попробуем вместе, используя минимум знаний о Python, разобраться с тем, каким образом подключиться к существующей гугл таблице и работать с данными.

Небольшое замечание. Если картинка на скриншоте нечеткая, попробуйте открыть ее в новой вкладке (правый клик мышки – “Открыть картинку в новой вкладке”)

Итак, вначале нам необходимо создать и настроить гугл проект.

Для этого переходим по ссылке

https://console.cloud.google.com/

В открывшемся окошке находим выпадающий список “Select a project” (Выбрать проект)

Выбрать проект

Кликаем и выбираем “NEW PROJECT ” (Новый проект)

Новый проект

Вводим (придумываем) имя нашему проекту и кликаем на “Create” (Создать)

Создать новый проект

Видим сообщение, что наш проект создан и кликаем на “Select project” (выбрать проект)

Выбираем проект

В следующем окне переходим на страницу с API

Переход на страницу с API

Включаем использование API нашим проектом

включить использование API

Далее нам необходимо найти API для работы с гугл таблицей. Для этого в поисковой строке набираем ключевое слово “drive” и кликаем на Enter

Поиск API

В результатах поиска находим и выбираем нужное нам API (Google Drive API)

Выбор API

Когда API выбрано, его необходимо включить для нашего проекта (сделать доступным)

Сделать API доступным

Следующий этап – подключение интерфейса для работы непосредственно с гугл таблицами. Для этого в строке для поиска вбиваем слово “sheets”.

Поиск API для гугл таблиц

В результатах поиска находим “Google sheets API” и кликаем на ней

Поиск API для гугл таблиц2

Делаем найденный интерфейс доступным для нашего проекта

подключаем API для гугл таблиц

После того, как мы сделали интерфейс доступным для нашего проекта, переходим в  раздел “APIs & Services” и находим в нем раздел “Credentials”

credentials

credentials2

В данном разделе нас интересует пункт “Create credentials”

создать credentials

После клика на “Create credentials” в выпадающем списке выбираем “Service account”

выбираем service account

Выбираем имя учетной записи, описание и кликаем на “Create and continue” (Создать и продолжить)

создаем аккаунт

На следующем этапе выбираем роль только-что созданной учетной записи. Нас интересует “Project -> Editor”

выбор роли

выбор роли2

Делаем нужный выбор и жмем на “Continue” (Продолжить)

выбор роли - продолжение

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

Находим в окне нашего проекта пункт меню “Service Accounts” и кликаем по нему. В открывшемся списке находим нашу (ранее созданную) учетную запись и кликаем на ней

выбрать учетную запись

Переходим в меню “Keys”

меню keys

И выбираем “Add key” (добавить ключ)

добавить ключ

Создаем новый ключ с помощью пункта меню из выпадающего списка (“Create new key”)

создать новый ключ

Выбираем тип ключа (JSON) и кликаем на “Create”

выбор типа ключа

Требуемый ключ создан и загружен на ваш компьютер

ключ загружен

По сути, процес создания и настройки гугл проекта завершен. Переходим ко второму этапу – собственно созданию проекта на Python для работы с нашей таблицей.

Для нашего проекта я использовал IDE PyCharm, вы можете использовать среду разработки по своему вкусу.

Итак, создаем новый проект. Находим ранее загруженный ключ, переименовываем его (для удобства) и добавляем в наш проект

key_1

key_2

key_3

Гугл таблицу для тестирования я создал заранее. Нам необходимо дать разрешение на ее редактирование из нашего проекта.

Для этого находим email, под которой зарегистрировалась наша ранее созданная учетная запись – в подключенном к проекту файле с ключем копируем значение параметра “client_email”

копируем email

И добавляем разрешение в нашей гугл таблице

разрешить доступ 1

разрешить доступ 2

разрешить доступ 3

разрешить доступ 4

Теперь, когда доступ к таблице из проекта разрешен, переходим непосредственно в сам код Python

Для работы с гугл таблицами нам необходимо импортировать в наш проект специальную библиотеку (gspread)

Это можно сделать с помощью директивы “import”

Пишем “import gspread”, наводим мышку на слово, подчеркнутое красным.

Немного ждем появления всплывающего меню  и выбираем “install package gspread”.

установить пакет

В открывшемся окне выбираем “Install Anyway” (установить в любом случае)

установка пакета
Дожидаемся окончания установки

окончание установки пакета

Теперь, когда библиотека установлена, можем подключиться к нашей таблице и работать с ней.

import gspread  # импортируем библиотеку

gs = gspread.service_account(filename='credits.json')  # подключаем файл с ключами и пр.
sh = gs.open_by_key('1sBtOE8J8vS3bCEEaJjQfwjDw5kXMMHcL6gb-yDs8gus')  # подключаем таблицу по ID
worksheet = sh.sheet1  # получаем первый лист

Чтобы получить все записи листа, используем метод “get_all_records”. Данный метод возвращает объект, который содержит записи указанного листа в виде “ключ-значение”

получить все записи

При помощи метода “get_all_values” можно получить все записи с заданного листа

получить все записи
Для примера рассмотрим еще парочку методов работы с гугл таблицей.

Получим первую строчку листа

получить первую строчку

Получим первую колонку листа

получить первую колонку

Получим заданную ячейку

получить ячейку

Получим заданный диапазон

получить диапазон

Вставить новую строку с данными

вставить строку

вставить строку 2

Добавить новую строку

Добавить строку

Добавить строку 2

Обновить ячейку

Обновить ячейку

Обновить ячейку 2

Удалить заданную строку

Удалить строку

Удалить строку 2

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

Код, который я использовал при этом, добавляю

# This is a Python script.

import gspread  # импортируем библиотеку

gs = gspread.service_account(filename='credits.json')  # подключаем файл с ключами и пр.
sh = gs.open_by_key('1sBtOE8J8vS3bCEEaJjQfwjDw5kXMMHcL6gb-yDs8gus')  # подключаем таблицу по ID
worksheet = sh.sheet1  # получаем первый лист

# res = worksheet.get_all_records()  # считываем все записи (массив: ключ-значение)
# res = worksheet.get_all_values()  # считываем все значения
# res = worksheet.row_values(1)  # получаем первую строчку таблицы
# res = worksheet.col_values(1)  # получаем первую колонку таблицы
# res = worksheet.get('A2')  # получаем заданную ячейку
# res = worksheet.get('A2:C2')  # получаем заданный диапазон
# print(res)  # выводим в консоль

# newRec = ["Антонов", "Самолет", 2500]
# worksheet.insert_row(newRec, 2)  # добавляем новые данные в строку 2

# worksheet.append_row(["Онищенко", "Велосипед", 220])  # добавить новую строку с данными
# worksheet.update_cell(6, 3, 180)  # обновить ячейку
worksheet.delete_rows(3)  # удалить строку номер 3

Надеюсь, информация будет вам полезной.

Пожелания и вопросы пишите в комментариях к данной статье.

Кстати, если наш сайт принес вам пользу и вы хотите сказать нам “Спасибо” и поддержать нас 🙏, то это можно сделать ЗДЕСЬ.

Рекомендую почитать:

 

Комментарии

  • Author’s gravatar
    Сергей 19th Октябрь 2021 , 18:57
    Ответить

    Добавил в закладки). Спасибо!

    • Author’s gravatar
      Игорь Билецкий 19th Октябрь 2021 , 19:29
      Ответить

      Спасибо за обратную связь.
      Рад, что статья пригодилась.

Оставить комментарий

Есть клиенты? Используйте CRM в Гугл Таблице для учета

Поддержать сайт! Спасибо!

Сказать спасибо и поддержать сайт

Зарабатывай через интернет

Доход через интернет: биржи фриланса и удаленной работы


ITVDN Many GEO's

Пользуемся и рекомендуем


Monobank [CPS, API] UA


sportbank [CPS] UA


Rozetka UA

Футажи для видео ютуб

Футажи для ютуба