Explorando a integração entre Google Sheets e Python para automação de dados no sheets
Starch1
Posted on January 19, 2024
Integrar o poder do Python com a funcionalidade colaborativa do Google Sheets oferece uma solução eficiente para automatizar tarefas relacionadas a planilhas. Neste artigo, vamos explorar um código Python que utiliza a biblioteca gspread para conectar e manipular planilhas do Google.
Você pode clonar este projeto aqui: GitHub
Pré-Requisitos
Antes de começarmos, certifique-se de ter o Python instalado em seu ambiente. Além disso, instale as bibliotecas necessárias usando o seguinte comando:
pip install gspread pandas
Configuração das credenciais
Escrevi um tutorial rapidinho de como fazer isto Preparando ambiente de trabalho-GoogleAPI Tendo isto feito vamos importar as bibliotecas e definir as credenciais
import gspread
import pandas as pd
from google.oauth2 import service_account
from google.auth.transport.requests import Request
import os
jsonFile = os.path.join(os.path.dirname(__file__), 'SUAS_CREDENCIAIS')
credentials = service_account.Credentials.from_service_account_file(jsonFile,
scopes=['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive'])
gc = gspread.authorize(credentials)
Conectando as planilhas
Agora, vamos abrir as planilhas de origem e destino. No exemplo abaixo, a planilha de origem é aberta pelo nome, enquanto a planilha de destino é acessada pelo seu ID. Você pode acessar planilhas localmente usando o pandas
workSheetSource = gc.open('CAMINHO_DA_PLANILHA')
workSheetDestination = gc.open_by_key('ID_DA_PLANILHA')
sheetSource = workSheetSource.worksheet('Página1')
sheetDestination = workSheetDestination.worksheet('Página1')
Manipulação e atualização dos dados
O próximo passo envolve a leitura dos dados da planilha de origem, sua manipulação usando a biblioteca Pandas e a atualização da planilha de destino
data = sheetSource.get_all_values()
chunkSize = len(data)
chunks = [data[1:1 + chunkSize] for i in range(0, len(data), chunkSize)]
df = pd.DataFrame(chunks[0], columns=chunks[0][0])
sheetDestination.clear()
sheetDestination.update([df.columns.values.tolist()] + df.values.tolist())
for chunk in chunks[1:]:
df = pd.DataFrame(chunk, columns=chunk[0])
sheetDestination.append_rows(df.values.tolist())
print(f'Done {chunkSize} rows updated.')
E adicionamos um print para imprimir no console o resultado :)
print(f'Done {chunkSize} rows updated.')
Conclusão
Este script Python realiza a leitura de uma planilha de origem, quebrando os dados em chunks, manipulando e usando a Pandas e, finalmente, atualizando uma planilha de destino no Google Sheets. Isso é especialmente útil para casos em que dados são gerados externamente e precisam ser refletidos em tempo real em uma planilha compartilhada.
Esse exemplo é um ponto de partida para automações mais complexas e é fácil de adaptar conforme suas necessidades específicas. Experimente e veja como essa integração pode tornar suas tarefas relacionadas a planilhas mais eficientes e automatizadas.
Posted on January 19, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
January 19, 2024