Skip to content

matheusfadoni/mapy-update-google-sheets

Repository files navigation

Automação de Geração e Atualização de Planilhas no Google Sheets

Este projeto automatiza a extração de dados do Oracle, geração de planilhas Excel e sincronização com o Google Sheets, usando um container Docker gerenciado via docker-compose.


Funcionalidades

  • Extração de dados Oracle: consulta categorias definidas em MV_PRODUCTOS.
  • Geração de planilha única: cria Produtos.xlsx consolidado.
  • Atualização no Google Sheets:
    • Atualiza apenas preços que mudaram.
    • Adiciona novos produtos com colunas extras (CORRIGIDO_IA, REVISADO, DESCRIPCION_ANTIGA).
    • Remove produtos que não estão mais no Excel.
  • Execução automatizada com cron (duas vezes ao dia).
  • Empacotado via Docker + Docker Compose.

Pré-requisitos

  1. Docker e Docker Compose instalados
  2. Baixar manualmente o arquivo:
    instantclient-basiclite-linux.x64-21.18.0.0.0dbru.zip
    Coloque na raiz do projeto antes de rodar o build.
  3. Credenciais do Google:
    • Baixe a conta de serviço e salve como credentials-google.json

Uso com Docker Compose

1. Exemplo de docker-compose.yml

version: '3.9'

services: exportar-planilha-google: build: . container_name: exportar-planilha-google volumes: - .:/app working_dir: /app command: cron -f restart: unless-stopped networks: - rede-exportar-planilha

networks: rede-exportar-planilha: driver: bridge

2. Build da imagem

docker-compose build

3. Iniciar o container

docker-compose up -d

O cron interno cuidará da execução automática.


Agendamento (cron interno)

O container executa o script principal automaticamente nos horários:


0 8 * * * /usr/local/bin/python3 /app/main-gerar-alterar-planilha.py
0 14 * * * /usr/local/bin/python3 /app/main-gerar-alterar-planilha.py

Principais arquivos

  • gerar-planilha.py: extrai dados do Oracle e cria o Excel
  • atualizar-planilha.py: atualiza, adiciona e remove dados no Google Sheets
  • main-gerar-alterar-planilha.py: executa os dois scripts em sequência
  • Dockerfile: configura o ambiente com Oracle Client, cron e dependências Python
  • crontab.txt: define os horários do cron

Configurações

  • Oracle (em gerar-planilha.py):
    
    db_host = "ip-do-servidor"
    db_port = 12345
    db_user = "user"
    db_pass = "password"
    db_database = "db_name"
        
  • Google Sheets (em atualizar-planilha.py):
    
    spreadsheet_id = 'id-da-planilha-encontrado-no-link'
        

Segurança

  • credentials-google.json está no .gitignore (não deve ser versionado)
  • Planilhas e credenciais não devem ser expostas publicamente
  • Recomenda-se usar variáveis de ambiente ou arquivo .env para configurações sensíveis

Observação final

Este projeto é modular e pode ser adaptado para diferentes bancos e planilhas. Ideal para sincronização de dados internos com planilhas acessíveis por outros sistemas ou bots.

About

MAPY - script do server local para gerar e subir as planilhas para google sheet

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors