Automação

Automatizando o envio de relatórios semanais com Python e Google Sheets API

Automatizando o envio de relatórios semanais com Python e Google Sheets API

Automatizando relatórios semanais com Python e Google Sheets API

Enviar relatórios semanais manualmente consome tempo e está sujeito a erros. Com Python e a Google Sheets API, você pode automatizar esse processo, garantindo que seus dados estejam sempre atualizados e acessíveis.

Neste artigo, vamos te mostrar como fazer isso passo a passo.


Por que automatizar com Google Sheets?

O Google Sheets é amplamente usado por equipes para monitorar métricas, tarefas e KPIs. Ele oferece:

  • Acesso fácil e colaborativo;

  • Histórico de alterações;

  • Integração com outras ferramentas Google.

Automatizar relatórios nesse formato elimina tarefas repetitivas e aumenta a produtividade.


Pré-requisitos

Antes de começar, você vai precisar:

pip install gspread oauth2client

Configurando a API do Google Sheets

  1. Crie um projeto no Google Cloud Console;

  2. Ative a Google Sheets API e a Google Drive API;

  3. Crie uma credencial do tipo "Conta de Serviço";

  4. Baixe o JSON da chave e salve como credentials.json;

  5. Compartilhe a planilha com o e-mail da conta de serviço (ex: nome@nome-do-projeto.iam.gserviceaccount.com).


Exemplo de script Python

Abaixo, um exemplo básico que atualiza uma planilha com dados simulados:

import gspread
from oauth2client.service_account import ServiceAccountCredentials
from datetime import datetime
 
# Autenticação
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name("credentials.json", scope)
client = gspread.authorize(creds)
 
# Abre a planilha e seleciona a aba
sheet = client.open("Relatório Semanal").sheet1
 
# Dados para preencher (exemplo)
data = [
    ["Data", "Leads", "Vendas", "Conversão (%)"],
    [datetime.today().strftime('%Y-%m-%d'), 120, 18, round(18/120*100, 2)],
]
 
# Limpa e escreve na planilha
sheet.clear()
for i, row in enumerate(data, start=1):
    sheet.insert_row(row, index=i)

Agendando o envio semanal

Você pode usar cron (Linux/macOS) ou o Agendador de Tarefas (Windows) para rodar o script automaticamente. Exemplo de entrada no crontab:

0 9 * * MON /usr/bin/python3 /caminho/para/script.py

Esse comando executa o script toda segunda-feira às 9h.


Boas práticas

  • Armazene a chave da API com segurança (use .gitignore);

  • Crie funções reutilizáveis para atualizar dados;

  • Valide dados antes de escrever na planilha;

  • Use planilhas separadas por período (ex: uma aba por semana).


Erros comuns e como evitá-los

ProblemaSolução
"Invalid credentials"Verifique se o caminho para o JSON está correto e atualizado
Planilha não encontradaConfirme se o nome está exato e se foi compartilhada com a conta de serviço
Permissão negadaCheque se a planilha está compartilhada com o e-mail da conta de serviço
Exceções em sheet.insert_rowVerifique o tamanho da linha e o índice onde está sendo inserido

Conclusão

Automatizar o envio de relatórios com Python e Google Sheets economiza tempo e reduz falhas manuais. Com algumas linhas de código, você cria um fluxo confiável e programável para compartilhar dados com sua equipe.

👉 Teste o exemplo acima com sua própria planilha, agende a execução semanal e veja sua produtividade aumentar!

Se este conteúdo foi útil, compartilhe com colegas!