Explorando a integração entre Google Sheets e Python para automação de dados no sheets
Tags: python, braziliandevs, datascience, tutorial
Published: 2024-01-19 19:08:04

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](Configuração das Credenciais
)

##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:
```shell
pip install gspread pandas
```
##Configuração das credenciais

Escrevi um tutorial rapidinho de como fazer isto [Preparando ambiente de trabalho-GoogleAPI](https://dev.to/starch1/preparando-o-ambiente-de-trabalho-e-utilizando-apis-google-4j16) Tendo isto feito vamos importar as bibliotecas e definir as credenciais



```py
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](https://pandas.pydata.org)

```py
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

```py
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 :)

```py
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.