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:
-
Conta Google;
-
Projeto no Google Cloud Console;
-
Biblioteca
gspread
eoauth2client
instaladas.
pip install gspread oauth2client
Configurando a API do Google Sheets
-
Crie um projeto no Google Cloud Console;
-
Ative a Google Sheets API e a Google Drive API;
-
Crie uma credencial do tipo "Conta de Serviço";
-
Baixe o JSON da chave e salve como
credentials.json
; -
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
Problema | Solução |
---|---|
"Invalid credentials" | Verifique se o caminho para o JSON está correto e atualizado |
Planilha não encontrada | Confirme se o nome está exato e se foi compartilhada com a conta de serviço |
Permissão negada | Cheque se a planilha está compartilhada com o e-mail da conta de serviço |
Exceções em sheet.insert_row | Verifique 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!