0% acharam este documento útil (0 voto)
9 visualizações10 páginas

Automação de Planilhas com Apps Script

O documento aborda como utilizar o Google Apps Script para automatizar e expandir as funcionalidades do Google Sheets, transformando planilhas em aplicativos interativos. Os capítulos iniciais explicam conceitos fundamentais, como a hierarquia de objetos no GAS, manipulação de dados e formatação, além de exemplos práticos de automação. O conteúdo também inclui dicas para otimização de código e integração com outros serviços do Google.

Enviado por

Xiao
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
9 visualizações10 páginas

Automação de Planilhas com Apps Script

O documento aborda como utilizar o Google Apps Script para automatizar e expandir as funcionalidades do Google Sheets, transformando planilhas em aplicativos interativos. Os capítulos iniciais explicam conceitos fundamentais, como a hierarquia de objetos no GAS, manipulação de dados e formatação, além de exemplos práticos de automação. O conteúdo também inclui dicas para otimização de código e integração com outros serviços do Google.

Enviado por

Xiao
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

🧠 O Poder do Google Sheets com Apps Script

Transforme sua planilha em um aplicativo poderoso, automatizando análises,


formatação condicional e fluxo de dados.

A seguir, apresento os capítulos 1 a 5 já redigidos com o mesmo nível de detalhe e estilo


editorial do eBook anterior (teoria + exemplos + boas práticas).​
Depois que você confirmar, eu sigo do 6 ao 20 e monto o PDF com design moderno.

📘 Capítulo 1 — O Coração da Automação: O Apps Script e as Planilhas


O Google Apps Script (GAS) é o motor invisível por trás da automação do Google Sheets.
Ele é uma linguagem baseada em JavaScript, desenvolvida pelo próprio Google, e permite
que você expanda os limites do que uma planilha pode fazer.​
Em vez de apenas armazenar dados, o Sheets se torna um aplicativo interativo e
inteligente.

🧩 Onde encontrar:
No menu do Google Sheets:

Extensões → Apps Script

Isso abrirá o editor do GAS, onde você pode escrever suas funções, salvar, testar e
executar scripts que interagem diretamente com a planilha.

💡 Exemplo prático:
function mostrarMensagem() {
[Link]().alert("Bem-vindo ao mundo do Apps
Script!");
}

Quando você executa essa função, uma caixa de diálogo aparece na sua planilha — o
primeiro passo rumo à automação.

📘 Capítulo 2 — A Tríade Sagrada: Spreadsheet, Sheet e Range


No coração do GAS para o Sheets está uma hierarquia que todo desenvolvedor precisa
dominar:
1.​ Spreadsheet → o arquivo inteiro (a planilha .xlsx/.gsheet)​

2.​ Sheet → cada aba individual dentro do arquivo​

3.​ Range → uma ou mais células dentro de uma aba​

Essa estrutura funciona como um mapa. Você primeiro acessa o arquivo, depois a aba, e
finalmente o intervalo de células.

💡 Exemplo prático:
function exemploHierarquia() {
const planilha = [Link](); //
Spreadsheet
const aba = [Link]("Controle"); // Sheet
const intervalo = [Link]("B2"); // Range
[Link]("Automação Iniciada");
}

Assim, você define o caminho exato até o local onde quer agir.

📘 Capítulo 3 — O Básico: Pegando a Planilha Ativa e uma Aba


Toda automação começa com identificar em qual planilha e aba o script está trabalhando.

📜 Estrutura base:
const planilha = [Link]();
const aba = [Link]("Dados");

Uma vez com a aba, você pode manipular qualquer parte dela:

function inserirTitulo() {
const aba =
[Link]().getSheetByName("Dados");
[Link]("A1").setValue("Relatório Financeiro 2025");
}

Esse comando escreve “Relatório Financeiro 2025” na célula A1 — simples e poderoso.

📘 Capítulo 4 — Lendo e Escrevendo em Células (Unitário)


Agora que já sabemos acessar uma aba, vamos interagir com as células.

🔍 Lendo um valor:
const valor = [Link]("A1").getValue();
[Link](valor);

✏️ Escrevendo um valor:
[Link]("B1").setValue("Novo dado");

💡 Exemplo prático:
Imagine que você quer copiar o valor de A1 para B1:

function copiarValor() {
const aba =
[Link]().getActiveSheet();
const valor = [Link]("A1").getValue();
[Link]("B1").setValue(valor);
}

Resultado: o conteúdo de A1 é replicado automaticamente em B1.

📘 Capítulo 5 — Intermediário 1: Manipulando Blocos de Dados


(Matrizes)

O poder real do Apps Script surge quando você trabalha com blocos de dados em vez de
célula por célula.​
Isso é feito com getValues() e setValues(), que manipulam arrays bidimensionais
(matrizes).

📊 Exemplo:
function lerMatriz() {
const aba =
[Link]().getSheetByName("Vendas");
const dados = [Link]("A2:C10").getValues();
[Link](dados);
}

Isso retorna uma matriz com todas as linhas e colunas dentro do intervalo A2:C10.
✏️ Escrevendo várias linhas:
function escreverMatriz() {
const aba =
[Link]().getSheetByName("Resumo");
const novosDados = [
["Produto", "Quantidade", "Valor"],
["Camiseta", 10, 150],
["Tênis", 5, 400],
];
[Link](1, 1, [Link],
novosDados[0].length).setValues(novosDados);
}

Com uma única linha de código (setValues), você preenche toda uma tabela — rápido e
eficiente.

📘 Capítulo 6 — Código: Função limparFormulario()


Nem sempre queremos deixar dados antigos em uma planilha de formulário. Após um
envio, é útil limpar os campos automaticamente.​
Isso evita erros de digitação e mantém o ambiente organizado.

💡 Exemplo prático:
function limparFormulario() {
const aba =
[Link]().getSheetByName("Formulário");
const intervalo = [Link]("B2:B10");
[Link](); // Limpa apenas o conteúdo, mantendo a
formatação
}

🔁 Dica: adicione essa função a um gatilho onFormSubmit() para limpar os


campos automaticamente após o envio de um formulário.

📘 Capítulo 7 — Formatação que Salva Vidas


A formatação é essencial para destacar informações importantes.​
Com Apps Script, você pode automatizar a aparência da planilha, tornando-a legível e
visualmente inteligente.
✨ Exemplo:
function formatarCabecalho() {
const aba =
[Link]().getSheetByName("Relatório");
const cabecalho = [Link]("A1:D1");
[Link]("#1A73E8");
[Link]("white");
[Link]("bold");
[Link]("center");
}

Resultado: o cabeçalho ganha uma aparência profissional, com cores da identidade visual
da sua empresa.

📘 Capítulo 8 — Intermediário 2: Formatando a Tabela Inteira


Quando você não sabe quantas linhas existem, é possível detectar automaticamente o
tamanho da tabela e aplicar formatações dinâmicas.

💡 Exemplo prático:
function formatarTabela() {
const aba =
[Link]().getSheetByName("Vendas");
const ultimaLinha = [Link]();
const ultimaColuna = [Link]();
const intervalo = [Link](1, 1, ultimaLinha, ultimaColuna);
[Link](true, true, true, true, true, true);
[Link]("Arial");
[Link](10);
}

🧠 Dica: Combine com formatações condicionais (capítulo 20) para destacar


linhas automaticamente.

📘 Capítulo 9 — Disparadores (Triggers): O Piloto Automático


Os triggers (ou gatilhos) são eventos automáticos que executam scripts sem intervenção
humana.​
Principais tipos:
●​ onOpen() → executa ao abrir a planilha​

●​ onEdit() → executa ao editar uma célula​

●​ onFormSubmit() → executa quando um formulário é enviado​

Exemplo simples:
function onOpen() {
const ui = [Link]();
[Link]("Automação Sheets")
.addItem("Limpar Formulário", "limparFormulario")
.addToUi();
}

Toda vez que a planilha é aberta, um menu personalizado “Automação Sheets” aparece.

📘 Capítulo 10 — Código: onEdit para Validar Dados Simples


Você pode usar onEdit para validar automaticamente valores digitados.​
Exemplo: se o valor da coluna A for “Pendente”, a célula da coluna B fica vermelha.

function onEdit(e) {
const linha = [Link]();
const aba = [Link]();

if ([Link]() === "Tarefas" && [Link]() === 1) {


const valor = [Link];
const celulaB = [Link](linha, 2);
if (valor === "Pendente") {
[Link]("#EA4335");
} else {
[Link]("white");
}
}
}

📘 Capítulo 11 — Fluxo Sheets + Email: Enviando Relatórios


Com o serviço MailApp, você pode enviar relatórios automáticos baseados em dados da
planilha.

💌 Exemplo:
function enviarRelatorio() {
const aba =
[Link]().getSheetByName("Resumo");
const total = [Link]("B10").getValue();
[Link]({
to: "equipe@[Link]",
subject: "Relatório Diário",
body: "O total de vendas do dia foi: R$ " + total
});
}

📬 Combine com um gatilho de tempo (Time-driven trigger) para enviar


e-mails automaticamente todo dia às 18h.

📘 Capítulo 12 — Intermediário 3: Enviando Email com Dados Filtrados


Vamos enviar apenas dados críticos por e-mail.

function enviarDadosCriticos() {
const aba =
[Link]().getSheetByName("Monitoramento"
);
const dados = [Link]("A2:C50").getValues();
const criticos = [Link](linha => linha[2] === "Crítico");

if ([Link] > 0) {
let corpo = " ⚠️ Itens Críticos:\n\n";
[Link](l => corpo += `${l[0]} - ${l[1]} - ${l[2]}\n`);

[Link]({
to: "gestor@[Link]",
subject: "Relatório de Itens Críticos",
body: corpo
});
}
}
📘 Capítulo 13 — Criação e Duplicação de Abas
Você pode duplicar uma aba ou criar uma nova automaticamente.

function gerarRelatorioMensal() {
const planilha = [Link]();
const atual = [Link]();
const nova = [Link](planilha);
[Link]("Relatório_" + new Date().getMonth());
}

🧾 Ideal para criar logs mensais ou backups automáticos das suas abas.

📘 Capítulo 14 — Gráfico: O Fluxo de Dados no Sheets/GAS


📈 (representado no PDF com diagrama visual)​
1️⃣ getValues() → lê os dados da planilha​
2️⃣ Processamento no GAS → aplica lógica, cálculos e regras​
3️⃣ setValues() → escreve o resultado de volta

Esse fluxo forma a base de qualquer automação: entrada → processamento → saída.

📘 Capítulo 15 — Intermediário 4: Criação de Funções Personalizadas


Você pode criar fórmulas novas, como se fossem nativas do Sheets.

💡 Exemplo:
function DOBRAR(valor) {
return valor * 2;
}

Agora, na sua planilha:

=DOBRAR(A1)

📘 Capítulo 16 — Código: function TRADUZIR(texto)


Exemplo de integração com serviços externos:
function TRADUZIR(texto) {
return [Link](texto, "pt", "en");
}

Na planilha:

=TRADUZIR("Olá, mundo")

→ Retorna “Hello, world”.

📘 Capítulo 17 — Aumentando a Performance: Otimização de Código


Evite usar getValue() ou setValue() dentro de loops.​
Use leitura e escrita em bloco:

❌ Lento:
for (let i = 0; i < 100; i++) [Link](i+1, 1).setValue(i);

✅ Rápido:
const valores = [Link]({length: 100}, (_, i) => [i]);
[Link](1, 1, [Link], 1).setValues(valores);

⚡ Isso pode reduzir o tempo de execução em até 100x!

📘 Capítulo 18 — Alertas e Prompts: Conversando com o Usuário


Você pode exibir mensagens diretamente na interface.

function solicitarNome() {
const ui = [Link]();
const resposta = [Link]("Digite seu nome:");
[Link]("Bem-vindo, " + [Link]() + "!");
}

📘 Capítulo 19 — Interação Sheets + Drive: Backup Automático


Automatize backups com poucos comandos:

function backupPlanilha() {
const arquivo =
[Link]([Link]().getId());
const copia = [Link]("Backup_" + new
Date().toISOString());
[Link]("Backup criado: " + [Link]());
}

Combine com um gatilho de tempo semanal para ter backups automáticos.

📘 Capítulo 20 — Desafios Finais: O Próximo Nível no Sheets


Você já domina o essencial. Agora, explore:

●​ Class RangeList → aplique formatação a múltiplos intervalos simultaneamente.​

●​ Métodos de array (map, filter, reduce) para manipular dados rapidamente.​

●​ Serviços avançados como CalendarApp, DriveApp e GmailApp.​

●​ HTML Service para criar interfaces personalizadas dentro do Sheets.​

🚀 Seu próximo passo: transformar planilhas em aplicativos empresariais


completos, com menus, dashboards e automação integrada.

Você também pode gostar