Atualização automática importHTML - Script para usar com o TRIGGER
Neste post, disponibilizo um script para utilizar no Google planilhas para que a função IMPORTHTML() seja atualizada automaticamente.
Como teve base um endereço de cotação, https://economia.uol.com.br/cotacoes/?20181115183715, o script faz um registro das alterações de cotações de cada moeda.
Coloquei bastante comentário no código, creio que fique fácil para quem quiser adaptar.
Abaixo segue como proceder para colocar o script na sua planilha.
Com a planilha aberta, copiar o script, colar na área de script (Menu Ferramentas, Editor de Script), substituir os campos (Arg_URL, Arg_Consulta, Arg_Indice) pelos dados que você precisa para a consulta, salvar e dar autorização para o script.
Para que funcione de maneira automática, acrescente o script a um trigger (Com o editor de script aberto, clique em editar, acionadores do projeto atual,) com base no tempo (clique em adicionar acionador, em Escolha a função que será executada, selecione o seu script, em Selecione a origem do evento, selecione Baseado no tempo, em Selecione o tipo de evento, selecione o tempo (contador de minutos, contador de horas) e em
Selecione o intervalo, selecione o tempo) .
Assista ao vídeo para ver o script funcionando no endereço
https://youtu.be/0NIGzM13X7A.
function Atualiza_IMPORTHTML_Com_Registro() {
//Variáveis IMPORTHTML
var Arg_URL = "Endereço do sítio"; //O URL da página a ser examinada, incluindo o protocolo (como "http://").
var Arg_Consulta = "Table/List"; // "list" (lista) ou "table" (tabela), dependendo do tipo de estrutura que contém os dados desejados.
var Arg_Indice = Numero; // O índice que identifica qual tabela ou lista deve ser retornada, conforme definido no código HTML.
var Hora_Agora = new Date(); // Pega no sistema a hora atual
var importHTML_Funcao = '=IMPORTHTML("' + Arg_URL + '";"'+ Arg_Consulta + '";'+Arg_Indice + ')'; // Insere todos os argumentos dentro da função IMPORTHTML
// As próximas quatros linhas fazem a atualização do importHTML
SpreadsheetApp.getActiveSpreadsheet().getRange("A1").clearContent(); //Esvazia o conteúdo da célula E1
SpreadsheetApp.flush(); // Atualiza a planilha
SpreadsheetApp.getActiveSpreadsheet().getRange("A1").setValue(importHTML_Funcao);// Insere a função importHTML na célula E1
SpreadsheetApp.getActiveSpreadsheet().getRange("A6").setValue("Função IMPORTHTML atualizada às: " + Hora_Agora.toLocaleDateString() + " " + Hora_Agora.toLocaleTimeString()); // Insere data e hora na célula E6
// Daqui para baixo é para fazer o regitro se houver diferença no valor da cotação por moeda
//Variáveis para inserção do registro na ultima linha
var aba = SpreadsheetApp.getActiveSheet();
var ultima = aba.getLastRow();
//Variaveis de cotação
var dolarturismo = aba.getRange(2,9).getValue();
var libra = aba.getRange(3,9).getValue();
var pesoarg = aba.getRange(4,9).getValue();
var bitcoin = aba.getRange(5,9).getValue();
// Inserindo a primeira cotação
if(aba.getRange(8,1).getValue()==""){
//Variaveis de cotação
dolarturismo = aba.getRange(1,3).getValue();
libra = aba.getRange(2,3).getValue();
pesoarg = aba.getRange(3,3).getValue();
bitcoin = aba.getRange(4,3).getValue();
if(aba.getMaxRows()==ultima){
aba.insertRowAfter(ultima);
ultima=ultima+1;
}
ultima=ultima+1;
for(var i=1;i<=1;i++){
aba.getRange(8,1).setValue(aba.getRange(1,1).getValue());
aba.getRange(8,2).setValue(aba.getRange(1,3).getValue());
aba.getRange(8,3).setValue("Função IMPORTHTML atualizada às: " + Hora_Agora.toLocaleDateString() + " " + Hora_Agora.toLocaleTimeString());
aba.getRange(9,1).setValue(aba.getRange(2,1).getValue());
aba.getRange(9,2).setValue(aba.getRange(2,3).getValue());
aba.getRange(9,3).setValue("Função IMPORTHTML atualizada às: " + Hora_Agora.toLocaleDateString() + " " + Hora_Agora.toLocaleTimeString());
aba.getRange(10,1).setValue(aba.getRange(3,1).getValue());
aba.getRange(10,2).setValue(aba.getRange(3,3).getValue());
aba.getRange(10,3).setValue("Função IMPORTHTML atualizada às: " + Hora_Agora.toLocaleDateString() + " " + Hora_Agora.toLocaleTimeString());
aba.getRange(11,1).setValue(aba.getRange(4,1).getValue());
aba.getRange(11,2).setValue(aba.getRange(4,3).getValue());
aba.getRange(11,3).setValue("Função IMPORTHTML atualizada às: " + Hora_Agora.toLocaleDateString() + " " + Hora_Agora.toLocaleTimeString());
//Memória da primeira cotação
aba.getRange(2,9).setValue(dolarturismo);
aba.getRange(3,9).setValue(libra);
aba.getRange(4,9).setValue(pesoarg);
aba.getRange(5,9).setValue(bitcoin);
}
}
//Verifica preço do dolar
if(aba.getRange(1,3).getValue()!=dolarturismo){
if(aba.getMaxRows()==ultima){
aba.insertRowAfter(ultima);
ultima=ultima+1;
}
ultima=ultima+1;
for(var i=1;i<=1;i++){
aba.getRange(ultima,1).setValue(aba.getRange(1,1).getValue());
aba.getRange(ultima,2).setValue(aba.getRange(1,3).getValue());
aba.getRange(2,9).setValue(aba.getRange(1,3).getValue());
aba.getRange(ultima,3).setValue("Função IMPORTHTML atualizada às: " + Hora_Agora.toLocaleDateString() + " " + Hora_Agora.toLocaleTimeString());
}
}
//Verifica preço da libra
if(aba.getRange(2,3).getValue()!=libra){
if(aba.getMaxRows()==ultima){
aba.insertRowAfter(ultima);
ultima=ultima+1;
}
ultima=ultima+1;
for(var i=1;i<=1;i++){
aba.getRange(ultima,1).setValue(aba.getRange(2,1).getValue());
aba.getRange(ultima,2).setValue(aba.getRange(2,3).getValue());
aba.getRange(3,9).setValue(aba.getRange(2,3).getValue());
aba.getRange(ultima,3).setValue("Função IMPORTHTML atualizada às: " + Hora_Agora.toLocaleDateString() + " " + Hora_Agora.toLocaleTimeString());
}
}
//Verifica preço do peso argentino
if(aba.getRange(3,3).getValue()!=pesoarg){
if(aba.getMaxRows()==ultima){
aba.insertRowAfter(ultima);
ultima=ultima+1;
}
ultima=ultima+1;
for(var i=1;i<=1;i++){
aba.getRange(ultima,1).setValue(aba.getRange(3,1).getValue());
aba.getRange(ultima,2).setValue(aba.getRange(3,3).getValue());
aba.getRange(4,9).setValue(aba.getRange(3,3).getValue());
aba.getRange(ultima,3).setValue("Função IMPORTHTML atualizada às: " + Hora_Agora.toLocaleDateString() + " " + Hora_Agora.toLocaleTimeString());
}
}
//Verifica preço do bitcoin
if(aba.getRange(4,3).getValue()!=bitcoin){
if(aba.getMaxRows()==ultima){
aba.insertRowAfter(ultima);
ultima=ultima+1;
}
ultima=ultima+1;
for(var i=1;i<=1;i++){
aba.getRange(ultima,1).setValue(aba.getRange(4,1).getValue());
aba.getRange(ultima,2).setValue(aba.getRange(4,3).getValue());
aba.getRange(5,9).setValue(aba.getRange(4,3).getValue());
aba.getRange(ultima,3).setValue("Função IMPORTHTML atualizada às: " + Hora_Agora.toLocaleDateString() + " " + Hora_Agora.toLocaleTimeString());
}
}
aba.getRange(1,1).activate();
}
DIVULGAÇÃO AFILIADA: Este vídeo e descrição ou texto, podem conter links de afiliados, o que significa que, se você clicar em um dos links de produtos, receberei uma pequena comissão. Não colocarei aqui nada que não tenha verificado e / ou usado pessoalmente.
Comentários
Postar um comentário