5 funções de script do Planilhas Google que você precisa conhecer

O Planilhas Google(Google Sheets) é uma poderosa ferramenta de planilha baseada em nuvem que permite fazer quase tudo o que você poderia fazer no Microsoft Excel . Mas o verdadeiro poder do Planilhas Google(Google Sheets) é o recurso de script do Google(Google Scripting) que o acompanha.

O script do Google Apps(Google Apps) é uma ferramenta de script em segundo plano que funciona não apenas no Planilhas Google(in Google Sheets) , mas também no Google Docs, Gmail, Google Analytics e em quase todos os outros serviços de nuvem do Google . Ele permite automatizar esses aplicativos individuais e integrar cada um desses aplicativos entre si.

Neste artigo, você aprenderá a começar a usar scripts do Google Apps , a criar um script básico no Planilhas Google(Google Sheets) para ler e gravar dados de células e as funções de script avançadas mais eficazes do Planilhas Google .(Google Sheets)

Como criar um script do Google Apps(How to Create a Google Apps Script)

Você pode começar agora mesmo a criar seu primeiro script do Google Apps a partir do (Google Apps)Planilhas Google(Google Sheets)

Para fazer isso, selecione Ferramentas(Tools) no menu e, em seguida, Editor de scripts(Script Editor) .

Isso abre a janela do editor de script e o padrão é uma função chamada myfunction() . É aqui que você pode criar e testar seu Google Script .

Para tentar, tente criar uma função de script do Planilhas Google(Google Sheets) que lerá dados de uma célula, realizará um cálculo nela e enviará a quantidade de dados para outra célula.

A função para obter dados de uma célula são as funções getRange()(getRange()) e getValue() . Você pode identificar a célula por linha e coluna. Portanto, se você tiver um valor na linha 2 e na coluna 1 (a coluna A), a primeira parte do seu script ficará assim:

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var row = 2;
   var col = 1;
   var data = sheet.getRange(row, col).getValue();
}

Isso armazena o valor dessa célula na variável de dados . (data)Você pode realizar um cálculo nos dados e, em seguida, gravar esses dados em outra célula. Então a última parte desta função será:

   var results = data * 100;
   sheet.getRange(row, col+1).setValue(results);
}

Quando terminar de escrever sua função, selecione o ícone do disco para salvar. 

Na primeira vez que você executar uma nova função de script do Planilhas Google(Google Sheets) como esta (selecionando o ícone de execução), será necessário fornecer Autorização(Authorization) para que o script seja executado em sua Conta do Google(Google Account) .

Permita que as permissões continuem. Depois que seu script for executado, você verá que o script gravou os resultados do cálculo na célula de destino.

Agora que você sabe como escrever uma função de script básica do Google Apps , vamos dar uma olhada em algumas funções mais avançadas.

Use getValues ​​para carregar arrays(Use getValues To Load Arrays)

Você pode levar o conceito de fazer cálculos em dados em sua planilha com scripts para um novo nível usando matrizes. Se você carregar uma variável no script do Google Apps usando getValues, a variável será uma matriz que pode carregar vários valores da planilha.

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var data = sheet.getDataRange().getValues();

A variável de dados é uma matriz multidimensional que contém todos os dados da planilha. Para realizar um cálculo nos dados, você usa um loop for . O contador do loop for funcionará em cada linha e a coluna permanecerá constante, com base na coluna em que você deseja extrair os dados.

Em nossa planilha de exemplo, você pode realizar cálculos nas três linhas de dados da seguinte maneira.

for (var i = 1; i < data.length; i++) {
   var result = data[i][0] * 100;
   sheet.getRange(i+1, 2).setValue(result); 
   }
}

Salve(Save) e execute este script exatamente como você fez acima. Você verá que todos os resultados são preenchidos na coluna 2 da planilha.

Você notará que fazer referência a uma célula e linha em uma variável de matriz é diferente de uma função getRange. 

data[i][0] refere-se às dimensões da matriz em que a primeira dimensão é a linha e a segunda é a coluna. Ambos começam em zero.

getRange(i+1, 2) refere-se à segunda linha quando i=1 (já que a linha 1 é o cabeçalho) e 2 é a segunda coluna onde os resultados são armazenados.

Use appendRow para gravar resultados(Use appendRow To Write Results)

E se você tiver uma planilha na qual deseja gravar dados em uma nova linha em vez de em uma nova coluna?

Isso é fácil de fazer com a função appendRow . Esta função não incomodará nenhum dado existente na planilha. Ele apenas anexará uma nova linha à planilha existente.

Como exemplo, faça uma função que conte de 1 a 10 e mostre um contador com múltiplos de 2 em uma coluna Contador .(Counter)

Esta função ficaria assim:

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();

   for (var i = 1; i<11; i++) {
      var result = i * 2;
     sheet.appendRow([i,result]);
   }
}

Aqui estão os resultados quando você executa esta função.

Processe feeds RSS com URLFetchApp(Process RSS Feeds With URLFetchApp)

Você pode combinar a função de script anterior do Planilhas Google e o (Google Sheets)URLFetchApp para extrair o feed RSS de qualquer site e escrever uma linha em uma planilha para cada artigo publicado recentemente nesse site.

Este é basicamente um método DIY para criar sua própria planilha de leitor de feed RSS !

O script para fazer isso também não é muito complicado.

function myFunction() {
   var sheet = SpreadsheetApp.getActiveSheet();
   var item, date, title, link, desc; 
   var txt = UrlFetchApp.fetch("https://www.topsecretwriters.com/rss").getContentText();
   var doc = Xml.parse(txt, false);  

   title = doc.getElement().getElement("channel").getElement("title").getText();
   var items = doc.getElement().getElement("channel").getElements("item");   

// Parsing single items in the RSS Feed

for (var i in items) {
   item  = items[i];
   title = item.getElement("title").getText();
   link  = item.getElement("link").getText();
   date  = item.getElement("pubDate").getText();
   desc  = item.getElement("description").getText();
   
   sheet.appendRow([title,link,date,desc]);
}
}

Como você pode ver, Xml.parse extrai cada item do feed RSS e separa cada linha em título, link, data e descrição. 

Usando a função appendRow , você pode colocar esses itens em colunas apropriadas para cada item no feed RSS .

A saída em sua planilha será algo como isto:

Em vez de incorporar o URL do feed RSS no script, você pode ter um campo em sua planilha com o URL e, em seguida, ter várias planilhas – uma para cada site que deseja monitorar.

Concatenar strings(Concatenate Strings) e adicionar(Add) um retorno de carro(Carriage Return)

Você pode levar a planilha RSS um passo adiante adicionando algumas funções de manipulação de texto e, em seguida, usar as funções de e-mail para enviar a si mesmo um e-mail com um resumo de todas as novas postagens no feed (RSS)RSS do site .

Para fazer isso, no script que você criou na seção anterior, adicione alguns scripts que extrairão todas as informações da planilha. 

Você vai querer construir a linha de assunto e o corpo do texto do e-mail analisando todas as informações da mesma matriz “itens” que você usou para gravar os dados RSS na planilha. 

Para fazer isso, inicialize o assunto e a mensagem colocando as seguintes linhas antes do loop For “itens”.

var subject = ‘Latest 10 articles published at mysite.com’
var message = ‘’

Então, no final do loop for “items” (logo após a função appendRow), adicione a seguinte linha.

message = message + title + '\n' + link + '\n' + date + '\n' + desc + '\n' + '\n \n';

O símbolo “+” concatenará todos os quatro itens seguidos por “ ” para um retorno de carro após cada linha. No final de cada bloco de dados de título, você desejará dois retornos de carro para um corpo de e-mail bem formatado.

Depois que todas as linhas são processadas, a variável “body” contém toda a string da mensagem de email. Agora você está pronto para enviar o e-mail!

Como enviar e-mail no script do Google Apps(How To Send Email In Google Apps Script)

A próxima seção do seu Google Script será enviar o “assunto” e o “corpo” por e-mail. Fazer isso no Google Script é muito fácil.

var emailAddress = [email protected];
MailApp.sendEmail(emailAddress, subject, message);

O MailApp é uma classe muito conveniente dentro dos scripts do Google Apps que lhe dá acesso ao serviço de e-mail da sua Conta do Google para enviar ou receber e-mails. Graças a isso, a linha única com a função sendEmail permite enviar qualquer e-mail(send any email) apenas com o endereço de e-mail, linha de assunto e corpo do texto.

Esta é a aparência do e-mail resultante. 

Combinar a capacidade de extrair o feed RSS(RSS) de um site , armazená-lo em uma planilha do Google(Google Sheet) e enviá-lo para você mesmo com links de URL incluídos, torna muito conveniente acompanhar o conteúdo mais recente de qualquer site.

Este é apenas um exemplo do poder disponível nos scripts do Google Apps para automatizar ações e integrar vários serviços de nuvem.



About the author

Sou um especialista em computadores com mais de 10 anos de experiência e me especializei em ajudar as pessoas a gerenciar seus computadores em seus escritórios. Escrevi artigos sobre tópicos como otimizar sua conexão com a Internet, como configurar um computador para a melhor experiência de jogo e muito mais. Se você está procurando ajuda com qualquer coisa relacionada ao seu trabalho ou vida pessoal, eu sou a pessoa para você!



Related posts