DEV Community

Starch1
Starch1

Posted on

Explorando a integração entre Google Sheets e Python para automação de dados no sheets

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
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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')

Enter fullscreen mode Exit fullscreen mode

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.')
Enter fullscreen mode Exit fullscreen mode

E adicionamos um print para imprimir no console o resultado :)

print(f'Done {chunkSize} rows updated.')
Enter fullscreen mode Exit fullscreen mode

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.

Top comments (0)