DEV Community

Starch1
Starch1

Posted on

2

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.

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Top comments (0)

Billboard image

Try REST API Generation for MS SQL Server.

DreamFactory generates live REST APIs from database schemas with standardized endpoints for tables, views, and procedures in OpenAPI format. We support on-prem deployment with firewall security and include RBAC for secure, granular security controls.

See more!

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay