Pular para o conteúdo principal

Destaques

Atualização automática importHTML - Script para usar com o TRIGGER

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

Postagens mais visitadas