Blog

Postado em em 1 de setembro de 2022

API do Google Sheets com Python – ATUALIZADO

Hoje eu vou te mostrar como usar a API do Google Sheets com Python para que você possa fazer seus projetos de automação!

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

API do Google Sheets com Python

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

API do Google Sheets com Python

Nessa aula nós vamos falar novamente sobre a integração do Python com Google Sheets. Nós já temos uma aula aqui no canal falando sobre o assunto.

Mas na aula de hoje vamos te mostrar o método atualizado para que você consiga utilizar o Python para fazer suas automações no Google Sheets.

Integração do Google Sheets com Python

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!

Para isso vamos até o Google e vamos pesquisar por Google Developers Console. Pode clicar no primeiro link para acessar!

Como deve ser a sua primeira vez dentro desse ambiente você já pode clicar em Novo Projeto, ou pode clicar na seta (nesse caso ao lado de integracaosheets) no canto superior esquerdo da tela e clicar em NOVO PROJETO.

Criando um novo projeto
Criando um novo projeto

Ao clicar nessa opção você pode colocar um nome intuitivo para o seu projeto e pode clicar em CRIAR.

Criação do projeto
Criação do projeto

Agora você pode clicar na setinha que fica no canto superior esquerdo (ao lado do nome integracaosheets) para que você possa visualizar e clicar no projeto que acabou de criar.

Dentro do seu projeto você terá que ativar 2 APIs, a API do Google Drive e a API do Google Sheets.

Basta buscar por “Google Drive API” na barra de busca, selecionar o primeiro link e depois basta clicar em Ativar. Agora basta repetir o mesmo procedimento para o “Google Sheets API”.

Depois de ativar as duas APIs você vai clicar nas 3 barrinhas na parte superior esquerda, logo ao lado de Google Cloud.

Abrindo a janela de API e serviços ativados
Abrindo a janela de API e serviços ativados

E aqui vai acessar a opção de APIs e serviços ativados. Nessa tela você vai clicar em Tela de permissão OAuth que fica logo no menu à esquerda.

Na próxima tela nós vamos ter que escolher a opção de usuário Externo, pois somente usuários do Google Workspace podem escolher a opção Interno.

OBS: Para essa opção de externo é necessário passar por várias verificações, só que para não ter que fazer isso, nós vamos criar usuários de teste na etapa 3 desse registro!

Iniciando a criação do aplicativo
Iniciando a criação do aplicativo

Agora basta preencher as informações e depois clicar em Salvar e Continuar. Com isso vamos para a etapa 2, que é a etapa de Escopos.

Aqui nós vamos ter o nível de acesso que vamos dar ao aplicativo, como vamos querer que o aplicativo possa editar, deletar, adicionar… não vamos fazer nada.

Mas se você quiser pode colocar suas restrições nessa parte para definir o que pode ou não ser feito.

Na etapa 3 é que nós vamos adicionar os usuários que vão poder utilizar essa API. Essa é uma das mudanças que foi feita em relação ao processo anterior.

Adicionando usuários de teste
Adicionando usuários de teste

Aqui você vai precisar colocar pelo menos o e-mail que você está utilizando, depois disso basta clicar em Salvar e Continuar.

Feito isso essa parte está finalizada, agora vamos clicar em Credenciais no menu lateral.

Criando o ID do cliente OAuth
Criando o ID do cliente OAuth

Vamos clicar em e ID do cliente OAuth e na tela seguinte já vamos escolher o tipo de aplicativo que está sendo criado, que nesse caso será App para computador e vai dar um nome.

Você vai notar que vai gerar as suas credenciais, mas na tela inicial, você vai visualizar esse ID que acabou de criar e logo no final você tem a opção para fazer o download dessas credenciais.

IMPORTANTE: Esse arquivo tem o seu ID e a sua chave se acesso para fazer o login dentro do seu Google Drive, então não disponibilize essas informações. Guarde elas em um local seguro!

Agora que você baixou o arquivo nós vamos renomear para credencials.json e vamos coloca-lo na mesma pasta onde nós vamos criar o nosso código em Python.

Agora sim nós finalizamos essa parte inicial!

Aqui temos um ponto importante, quando estamos tratando de API não podemos simplesmente começar a programar, é necessário que você leia a documentação da API.

https://developers.google.com/sheets/api/quickstart/python

Aqui você já tem o passo a passo que precisa para iniciar a utilização da API.

Pip install –upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

Esse é o Código que vamos utilizar para a instalação da biblioteca do Google. Se estiver utilizar o Jupyter pode abrir o anaconda prompt para fazer essa instalação.

O próximo passo é copiar o código que está disponível e colar no editor de Python que estiver utilizando.

Na parte de SCOPES é onde vamos informar as restrições do que o usuário pode fazer. Nesse código você pode notar que temos o .readonly no final do link, isso quer dizer que vamos poder apenas ler o arquivo sem fazer modificações.

Agora se não quiser nenhuma restrição basta retirar essa parte que poderá tanto ler quanto editar.

Em seguida temos o SAMPLE_SPREADSEET_ID que nada mais é do que o ID da sua planilha. Basta abrir sua planilha e logo na barra de endereço da internet logo após spreadsheet/ você vai ver um código.

Esse código bem grande é o ID da sua planilha, então já pode copiar e colocar no lugar desse.

Logo abaixo temos o SAMPLE_RANGE_NAME que é o intervalo onde vamos fazer as modificações na planilha.

Agora na parte do def main() é onde de fato vamos executar alguma ação dentro da nossa planilha, a parte anterior foi apenas para importar bibliotecas e informar qual planilha e onde será editado.

A primeira parte do código é apenas para efetuar o login para que seja possível fazer as edições dentro da planilha.

Código de verificação e criação do token
Código de verificação e criação do token

Então essa parte inicial é apenas para fazer as verificações das credenciais para poder fazer o login. Só que esse login é feito através de um token de autenticação.

Então esse código basicamente vai verificar se esse arquivo de token existe, caso ele não exista, ele será criado com base no arquivo das credenciais que salvamos anteriormente.

Na primeira vez que for fazer esse login o programa vai gerar um link para que você entre e faça o seu login. Aqui você vai continuar e vai falar que esse aplicativo quer acessar a sua conta do Google.

Pronto! Depois da autenticação feita você vai notar que o arquivo token.json foi criado na mesma pasta onde está o seu código.

Agora nós vamos ao código que de fato vai fazer uma ação na sua planilha.

Código padrão para leitura da planilha
Código padrão para leitura da planilha

Esse primeiro código dentro do try é para criar um serviço, é um código padrão então você não precisa alterar.

Agora em sheet nós só vamos dizer que vamos trabalhar com esse serviço em uma planilha.

Sempre que quisermos executar uma ação vamos utilizar o comando result = sheet.values(). O que vem depois desse comando é a operação que vamos fazer.

  • Get – Operação para pegar uma informação do Google Sheets;
  • Update – Adiciona ou edita uma informação de uma célula.

Dentro dessa operação nós vamos precisar de duas informações, o ID da planilha e o intervalo que vamos fazer a leitura ou modificação.

Código para inserir o id da planilha e o intervalo a ser utilizado
Código para inserir o id da planilha e o intervalo a ser utilizado

No início do código nós já fizemos a criação dessas duas variáveis, então se você ajustou corretamente só vai precisar colocar o nome das variáveis que utilizou no início que o Python vai puxar as informações das variáveis!

Por fim vamos utilizar o .execute() que é para executar esse comando na nossa planilha!

O resultado dessa execução vai retornar um dicionário e dentro dele nós vamos ler apenas as informações de Values, que são os valores que temos na nossa planilha.

Isso vai retornar uma lista de lista com as informações que temo na planilha, então cada elemento vai trazer a informação de cada linha.

API do Google Sheets com Python
Lendo as informações da planilha

Agora vamos supor que você queira adicionar novos valores na sua planilha, como seria esse processo?

É como falamos anteriormente, primeiro vamos mudar de get para update e aqui nós temos um parâmetro a mais que é o valueInputOption (lembrando que tudo isso está na documentação).

API do Google Sheets com Python
Adicionando informações na planilha

Aqui nós estamos acrescentando 4 novas informações na célula A13 da nossa planilha. Você não precisa informar todas as células, basta informar de onde vai começar a inserir as informações que o programa vai colocar as informações a partir dessa célula.

API do Google Sheets com Python
Planilha com as informações adicionadas

Nós só tínhamos valores até a linha 12, que eram as informações de novembro, então acrescentamos mais duas linhas de informação.

Agora a nossa ideia é criar uma coluna de imposto com o valor de 10% em cima do valor de vendas.

Então para isso nós vamos ter que fazer alguns tratamentos e ajustes para que isso seja possível, até porque nós vamos ter que percorrer os valores de vendas.

E outro ponto muito importante é que vamos ter que tratar esses valores de vendas, pois na hora de ler eles dentro do Python ele vai vir no formato ‘R$ 50.668,00’.

 Então vamos ter que remover o R$ e ainda vamos ter que trocar o ponto por vírgula e a vírgula por ponto.

Pois no formato americano os separadores são diferentes do formato brasileiro.

API do Google Sheets com Python
Adicionando uma coluna de impostos

Após efetuar os ajustes dentro da estrutura de repetição for, que vai repetir o procedimento para todas as informações do nosso intervalo nós vamos poder executar o código.

IMPORTANTE: Aqui é muito importante tomar cuidado com a identação do código, pois o result que está no final só é para ser executado quando a estrutura for finalizar. Então tome cuidado para deixar essa parte fora do for para que o código seja executado de forma correta.

API do Google Sheets com Python
Resultado da criação de coluna de impostos

Aqui já temos as informações sendo adicionadas na nossa planilha já com o cálculo e com a formatação correta.

Você deve ter notado que nesse caso o cálculo não foi feito para as linhas 13 e 14, mas isso é porque o nosso intervalo inicial da planilha estava da célula A1 até a célula B12.

Isso quer dizer que o código só está lendo essas informações, então se quiser que o cálculo seja feito para todas as linhas basta alterar o intervalo!

Outro ponto bem importante é você se atentar a formatação das suas informações dentro do Google Sheets, pois o seu código vai ler essas informações como texto, então na hora de tratar é importante que essas informações estejam no mesmo formato.

Se isso não acontece é possível que você tenha algum tipo de erro na hora de fazer seus tratamentos e consequentemente na hora de fazer seus cálculos!

Agora que você já sabe como ler e como fazer alterações nas suas planilhas do Google Sheets, basta começar a praticar para fixar todo esse conteúdo.

Então você pode ir testando esses códigos e é claro que pode e deve sempre consultar a documentação para que você aprenda o que pode fazer e como fazer o que precisa dentro do Python!

Conclusão – API do Google Sheets com Python

Nessa aula eu te mostrei como fazer a integração do Python com Google Sheets de forma atualizada.

Agora você tem condições de fazer suas automações diretamente nas planilhas do Google que já ficam em um ambiente online, então suas atualizações já estarão na web com tudo certo!

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 na linguagem de programação que mais cresce no mundo? Inscreva-se gratuitamente no Intensivão de Python!