Blog

Postado em em 22 de novembro de 2021

Integração do Python com Google Sheets – Passo a Passo Completo

Hoje eu quero te ensinar como fazer a integração do Python com Google Sheets que é diferente da integração com o Excel!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Resumo

Nessa aula eu vou te mostrar como fazer a integração do Python com Google Sheets, só que para isso nós vamos ter que passar por 4 etapas, pois não é tão simples quanto integrar o Excel com o Python.

Como Integrar Python com Google Sheets

Você sabe como integrar Python com Google Planilha? Então está no lugar certo, porque hoje eu vou te mostrar o passo a passo para essa integração.

Essa não é uma integração tão simples de fazer igual temos a do Excel com o Python por exemplo, pois vai envolver API Google Sheets, gerenciar autenticação com essa API, executar essa API e executar o código na planilha!

Integração do Python com Google Sheets

Antes de iniciar essa integração é importante que você já tenha uma conta no Gmail e que você tenha uma planilha dentro do seu Google Drive para que possamos fazer essa integração.

IMPORTANTE: A planilha tem que estar dentro do seu Google Drive, então nós já disponibilizamos uma de exemplo caso queira copiar os dados, mas lembre-se de colocá-la dentro do seu Drive!

PASSO 1 – AUTORIZAR A API DO GOOGLE SHEETS

Para fazer isso nós vamos precisar entrar no Google Developer Console. Você pode escrever isso diretamente no Google e entrar nessa página, lembrando que vai ter que fazer o login com a sua conta do Gmail para que consiga fazer os próximos passos.

Esse Google Developer Console vai permitir com que você consiga ativar ou desativar integrações de API com o Google.

Como é uma forma geral não vai ficar restrito apenas a API do Google Sheets, então você vai poder ativar ou desativar outras APIs do Google.

Como pode ser a primeira vez que você acessa esse ambiente você vai ter que ler os termos de serviço e concordar se estiver de acordo para poder prosseguir.

Depois disso você vai clicar em CRIAR PROJETO para que possamos iniciar, pois isso tudo fica salvo dentro desse projeto.

Criação do projeto

Essa parte é bem simples, basta dar um nome ao projeto e clicar em criar. Depois dessa criação nós vamos ter que ativar 2 APIs, a do Google Drive e a do Google Sheets!

Ativando a API do Google Drive

Para ativar essas APIs basta ir à própria barra de buscas e escrever a API que vai ativar, clicar no link referente a essa API e por fim clicar no botão Ativar.

Lembrando que você vai fazer isso para a API do Google Drive e do Google Sheets.

Agora nós vamos a criação das credenciais para poder fazer essas conexões.

Voltando ao painel principal

Aqui é importante que você clique nos 3 traços, vá até APIs e serviços e selecione Painel. Dessa forma você vai garantir que vai criar as credenciais para tudo e não somente para a API que estava selecionada.

Dentro do painel nós vamos agora selecionar Tela de permissão OAuth.

Tela de permissão OAuth

Aqui vamos selecionar o tipo do usuário, que neste caso vai ser externo e já pode clicar em criar.

Inserindo as informações solicitadas

Na próxima etapa vamos colocar o nome desse app, o e-mail do usuário (lá embaixo vamos colocar ele novamente), depois basta clicar em Salvar e Continuar.

No passo de Escopos é que vamos definir as permissões aos usuários a esse app, mas como esse é um projeto pessoal nós não vamos adicionar nenhum escopo.

Quando não adicionamos escopo, quer dizer que a pessoa que tem acesso vai poder fazer tudo dentro do app, mas como é só pra você que vai utilizar não tem problema algum.

Agora caso esteja fazendo algo para que outras pessoas possam só acessar arquivos sem editar por exemplo, você terá que criar um escopo.

Para o usuário de teste também não vamos adicionar nada e nada página de resumo vamos apenas clicar em voltar para o painel.

Agora nós vamos precisar criar uma ID do Cliente OAuth e para isso vamos a guia de Credenciais, depois em Criar Credenciais e por fim em ID do Cliente OAuth.

ID do cliente OAuth

Feito isso nós vamos poder definir qual é o tipo de aplicativo que será criado e qual o nome vamos dar para esse aplicativo.

Escolhendo o tipo de aplicativo

Ao clicar em criar você vai receber duas informações importantes que é o ID de cliente e a Chave de acesso.

ID do Cliente e Chave de Acesso

Feito isso você vai ter essas informações na parte de credenciais e nós vamos fazer o download dessas informações.

Download do cliente OAuth

Basta clicar em fazer o download do cliente OAuth e depois em fazer o download do JSON.

Dentro desse arquivo você já vai ter todas as informações que o Google precisa para conseguir fazer a autenticação.

IMPORTANTE: Não compartilhe esse arquivo com ninguém, pois ele vai permitir que qualquer pessoa tenha acesso ao seu Google Drive, portanto deixe-o bem guardado para evitar esse tipo de problema.

Agora você vai pegar esse arquivo e vai colocá-lo na mesma pasta que vai criar o arquivo em Python, depois basta renomear ele para client_secret.json.

Agora nós vamos para a segunda etapa que é a conexão do Python com a API.

PASSO 2 – CONEXÃO DO PYTHON COM A API DO GOOGLE

Para poder fazer isso você pode clicar aqui (ou pode escrever no Google “Google Sheets API Python”) para acessar o site onde vamos obter o código em Python da API do Google Sheets.

E ele também já vai te mostrar os passos que tem que seguir, sendo o primeiro deles a instalação da biblioteca que será utilizada.

Como nós estamos utilizando o PyCharm, basta copiar o código de instalação e colar ele diretamente no terminal do programa!

Enquanto a instalação é concluída você pode voltar no site e copiar todo o código e colar dentro do PyCharm.

from __future__ import print_function
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials

# If modifying these scopes, delete the file token.json.
SCOPES = ['https://www.googleapis.com/auth/spreadsheets.readonly']

# The ID and range of a sample spreadsheet.
SAMPLE_SPREADSHEET_ID = 'id_da_sua_planilha'
SAMPLE_RANGE_NAME = 'Class Data!A2:E'

OBS: Caso você não queira copiar todo esse código, nós já deixamos o arquivo disponível para download já com a linha de instalação da biblioteca.

Esse código vai criar essa conexão do Python com a API, então nós vamos a uma breve explicação do código para que você entenda o que está acontecendo.

E depois, é claro, nós vamos ter que fazer algumas alterações para que ele funcione para a nossa aplicação!

Na primeira parte temos apenas a importação de algumas bibliotecas da API do Google para que funcione normalmente.

Logo abaixo nós temos os escopos, que é o tipo de autorização que o código vai ter para alterar suas planilhas. Nesse caso nós temos a autorização de readonly, que é apenas para leitura.

Como queremos ler e editar o arquivo basta excluir esse .readonly que vamos poder fazer as alterações normalmente.

As outras duas informações são do ID da sua planilha, que você vai pegar acessando-a no seu Drive e o código dela vai estar entre barras logo depois do …spreadsheets/d/.

E logo abaixo temos o range que é o intervalo que vamos ler dentro dessa planilha. Aqui é igual temos no Excel mesmo “nome_da_aba!+intervalo_de_células”.

def main():
    creds = None

    if os.path.exists('token.json'):
        creds = Credentials.from_authorized_user_file('token.json', SCOPES)
    # If there are no (valid) credentials available, let the user log in.
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'client_secret.json', SCOPES)
            creds = flow.run_local_server(port=0)

Essa parte inicial da nossa função é a parte onde o código vai fazer uma verificação das credenciais.

Aqui ele vai verificar se já tem o arquivo token.json, em caso positivo vai pegar as credenciais desse arquivo para autorizar.

Caso contrário vai verificar se as credenciais são válidas ou expiradas para poder atualizar.

E por fim vai fazer uma verificação do arquivo que nós temos as informações que já baixamos que é o cliente_secret.json.

Mas o que acontece se não tiver esses arquivos? Ao rodar o código será aberta uma página na internet para que você possa fazer o seu login e fazer a autorização, com isso o arquivo já será criado na mesma pasta que rodamos o arquivo.

Agora quando você rodar o código novamente você já tem o token.json com a autenticação, então você não precisa mais fazer esse acesso “manual”.

PASSO 3 – CONEXÃO COM O GOOGLE SHEETS

Essa parte é apenas uma linha de código, mas é uma parte importante que é a utilização das credenciais para fazer a conexão para que possamos fazer a integração do Python com Google Sheets.

service = build('sheets', 'v4', credentials=creds)

Então esse código vai permitir com que o usuário faça essa conexão com o Google Sheets e em seguida possa escrever o código que de fato vai fazer a ação dentro da planilha.

PASSO 4 – EXECUTAR O CÓDIGO EM PYTHON NA PLANILHA

Agora é que de fato vamos criar o código para tratar ou analisar os dados da planilha. Você provavelmente pensou que só teríamos essa parte do código.

    # Call the Sheets API
    # Ler informações do Google Sheets
    sheet = service.spreadsheets()
    result = sheet.values().get(spreadsheetId='id_sua_planilha',
                                range='Página1!A1:C12').execute()
    values = result.get('values', [])
    print(values)

    # adicionar/editar valores no Google Sheets
    valores_adicionar = [
        ["Dezembro", "R$ 70.000,00"],
        ["Janeiro/22", "R$80.000,00"],
        ["Fevereiro/22", "R$127.352,00"],
    ]
    result = sheet.values().update(spreadsheetId='id_sua_planilha',
                                range='Página1!A13', valueInputOption="RAW",
                                   body={"values": valores_adicionar}).execute()

Que é onde vamos ler as informações do Google Sheets e depois vamos adicionar/editar algumas informações dessa planilha.

Não é só isso, porque precisamos fazer toda a parte de autenticação do Google que é também uma medida de segurança, até para que ninguém acesse suas informações de forma fácil.

Integração do Python com Google Sheets

Aqui por exemplo você já consegue visualizar parte dos valores que puxamos dessa planilha, e estão exatamente como colocamos na planilha inicial.

Integração do Python com Google Sheets

E aqui temos a adição dos novos valores a partir da célula 13 para não sobrepor nenhuma informação que já tínhamos na planilha.

Conclusão – Integração do Python com Google Sheets

Nessa aula eu te mostrei todo o passo a passo para fazer a autenticação e integração do Python com Google Sheets.

Dessa forma você vai poder pegar ou editar/adicionar informações na sua planilha utilizando o Python, com isso pode automatizar esse processo.

Lembrando que o processo de autenticação é necessário para que você consiga acessar os arquivos do seu Drive, então é muito importante que você não compartilhe as suas credenciais com ninguém!

Agora é só colocar em prática o que aprendeu e aplicar essa parte nos seus projetos para integrar o Python com Google Sheets e facilitar a atualização de informações!

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador