Enviar una hoja de calculo por correo google-apps-script

Como envió una hoja de calculo de google a un correo electrónico, al enviarlo automáticamente me lo pasa a pdf o excel pero no lo necesito en ninguno de esos formatos.

var file = DriveApp.getFileById(‘1234567890abcdefghijklmnopqrstuvwxyz’); GmailApp.createDraft(‘mike@example.com’, ‘Attachment example’, ‘Please see attached file.’, { attachments: [file.getAs(MimeType.PDF)], name: ‘Automatic Emailer Script’ });

Limpiar filas con emails inválidos de una hoja de cálculo de Google

Pues llevo bastante peleándome con este asunto, ya que, si no fuera porque la función tiene que hacer muchas cosas más, tardaría menos haciéndolo con filtros a mano…

La cosa es que quiero eliminar de un Google Sheet todas las filas cuya celda de email sean inválidos o de Gmail.

Al principio lo hice con una macro que me dio el siguiente código:

function Limpiarfilasycolumnas() {    //Seleccionar hoja y empezar   var spreadsheet = SpreadsheetApp.getActive();     //No funciona   //Localizar y eliminar todo lo que no sea un email   spreadsheet.getRange('E:E').activate();   spreadsheet.getRange('E:E').createFilter();   spreadsheet.getRange('E1').activate();   var criteria = SpreadsheetApp.newFilterCriteria()   .whenFormulaSatisfied('=NOT(REGEXMATCH(E:E;"^([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,})$  "))')   .build();   spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);   var sheet = spreadsheet.getActiveSheet();   sheet.getRange(2,1,spreadsheet.getActiveSheet().getLastRow()).activate();   spreadsheet.getActiveSheet().deleteRows(spreadsheet.getActiveRange().getRow(), spreadsheet.getActiveRange().getNumRows());   spreadsheet.getActiveSheet().getFilter().remove();    //No funciona   //Localizar y borrar los emails de Gmail   spreadsheet.getRange('E:E').activate();   spreadsheet.getRange('E:E').createFilter();   spreadsheet.getRange('E1').activate();   var criteria = SpreadsheetApp.newFilterCriteria()   .whenTextContains('gmail.com')   .build();   spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria);   var sheet = spreadsheet.getActiveSheet();   sheet.getRange(2,1,spreadsheet.getActiveSheet().getLastRow()).activate();   spreadsheet.getActiveSheet().deleteRows(spreadsheet.getActiveRange().getRow(), spreadsheet.getActiveRange().getNumRows());   spreadsheet.getActiveSheet().getFilter().remove();   }; 

Pero haciendo pruebas me percaté de que si la hoja era distinta, ya no funcionaba la macro… Así que después de leerme todas las preguntas con título relacionado, me decanté por hacerlo por Javascript como comentaba el usuario Rubén en una de sus respuestas.

Así que, he hecho el código simulando el filtro con Javascript y me ha quedado lo siguiente:

function Pruebas()  {   var ss = SpreadsheetApp.getActive();   limpia_columna_email(ss.getActiveSheet());   SpreadsheetApp.getUi().alert("Hoja actualizada correctamente"); };  function limpia_columna_email(ss) {   var emails = ss.getRange("E:E").getValues();   for(var i = emails.length-1; i > 0 ; i--)   {     if(!validar_mail(emails[i][0])) ss.deleteRow(i+1);   } };  function validar_mail(email) {   var patron = new RegExp("^([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,})$  ");   if(email == null || email == "") return false;   if(email.search("gmail.com") != -1) return false;   return patron.test(email);   return false; //Aquí no debe de llegar nunca }; 

Ahora bien, la hoja que le paso tiene más de 5000 filas… y ejecutar el código ha tardado una barbaridad (vamos, si me descuido me veo el capítulo de Stranger Things entero…).

Más que optimizar, que también sería bienvenido ¿se os ocurre como hacerlo de otra manera para que no tarde tanto?

Gracias de antemano.

Google Maps. Cómo cargar dinámicamente el cálculo de ruta del mapa

Necesito ayuda con el cálculo de la ruta de Google Maps al cargarla en forma dinámica. Aparece el error en la consola de que la función del cálculo (calcularRuta()) no está definida:

Uncaught ReferenceError: calcularRuta is not defined     at HTMLInputElement.onclick (index.html:1) 

Todo lo demás funciona perfectamente, pero al llamar a la función nombrada aparece ese error. He probado a cargarla de distintos modos y a situarla en otro lugar del código pero no funciona. Os de el script del mapa aquí:

var gMapsLoaded = false; window.gMapsCallback = function() {   gMapsLoaded = true;   $  (window).trigger('gMapsLoaded'); }  window.loadGoogleMaps = function() {   if (gMapsLoaded) return window.gMapsCallback();   var script_tag = document.createElement('script');   script_tag.setAttribute("type", "text/javascript");   script_tag.setAttribute("src", "https://maps.googleapis.com/maps/api/js?key=AIzaSyBDaeWicvigtP9xPv919E-RNoxfvC-Hqik&callback=gMapsCallback");   (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag); }  $  (document).ready(function() {       var mapa;       var mostrar_direcciones;        var servicios_rutas;        function initialize() {         servicios_rutas = new google.maps.DirectionsService();         mostrar_direcciones = new google.maps.DirectionsRenderer();         var milatlng = new google.maps.LatLng(40.4450489, -3.6103049)         var mapOptions = {           zoom: 12,           center: milatlng,           mapTypeId: google.maps.MapTypeId.ROADMAP          };         map = new google.maps.Map(document.getElementById('mapa'), mapOptions);          mostrar_direcciones.setMap(mapa);         mostrar_direcciones.setPanel(document.getElementById("ruta"));          var marker = new google.maps.Marker({           position: milatlng,           map: map,         });        }        function calcularRuta() {         var partida = document.getElementById("partida").value;         var destino = document.getElementById("destino").value;         var opciones = {           origin: partida,           destination: destino,           travelMode: google.maps.DirectionsTravelMode.DRIVING           //indicamos en este caso que hacemos el viaje en coche/moto         };          servicios_rutas.route(opciones, function(response, status) {           if (status == google.maps.DirectionsStatus.OK) {             mostrar_direcciones.setDirections(response);           }         });       }        $  (window).bind('gMapsLoaded', initialize);       window.loadGoogleMaps(); 

Y el HTML aquí:

<div id="contenedorMapa">     <h2>ENCUÉNTRAME AQUÍ</h2>     <div id="mapa">          <p>Cargando, espere por favor...</p>      </div>     <div id="ruta" style="width: 100px; height: 100px; background-color: green;"></div>     <input type="text" id="partida" name="partida">     <input type="destino" id="destino" name="destino">     <input type="button" name="button" id="button" value="aaaaaaaaaaa" onclick="calcularRuta()"> </div> 

Supongo que es cuestión de mover algún dato pero he hecho varias pruebas y no doy con el error.

Gracias!

Erro em código de calculo de IMC em Javascript, me ajudem a fazer funcionar por favor

function calcula(){ var peso = document.getElementById(‘peso’).value; var altura = document.getElementById(‘altura’).value; var calculo = peso/(altura*altura).toFixed(2); var resultado = document.getElementById(‘resultado’); resultado.innerHTML = calculo; if (resultado = 24,9) { legenda.innerHTML = “Peso ideal”; } else { legenda.innerHTML = ” “; resultado.innerHTML = ” “; } if (resultado = 29,9) { legenda.innerHTML = “Acima do peso”; } else { legenda.innerHTML = ” “; resultado.innerHTML = ” “; } if (resultado = 34,9) { legenda.innerHTML = “Obesidade |”; }else { legenda.innerHTML = ” “; resultado.innerHTML = ” “; } if (resultado = 39.9) { legenda.innerHTML = “Obesidade ||”; } else { legenda.innerHTML = ” “; resultado.innerHTML = ” “; } if (resultado

Fiz este algoritmo do calculo de PI.Porem preciso adicionar outras coisas. Queria saber se algm poderia me ajudar a inserir Vetor ou Matriz no código [pendente]

/Aluno: Ícaro Peretti Baseggio. //Projeto: Calculo de PI por Monte Carlo. Adontando o intervalo entre [0,1].

include

include

include

include

int main(){ double px,py,deltax,deltay,DistEuc,Valor_pi; int Npont_quad = 1000000; int dentro_circ = 0; int i;

srand(time(NULL));

for(i = Npont_quad; i > 0; i–){ //Estrutura de repetição para gerar pontos aleatorios. px = rand() / (double)RAND_MAX; //Primeiro numero sorteado entre 0 e 1. py = rand() / (double)RAND_MAX; //Segundo numero sorteado entre 0 e 1. deltax = pow((px- 0.5),2); //Calculo do cateto x da hipotenusa.
deltay = pow((py – 0.5),2); //Calculo do cateto y da hipotenusa. DistEuc = sqrt(deltax + deltay); //Calculo da distancia euclidiana(distancia entre os pontos) if (DistEuc <= 0.5){ //Determinar quais pontos estão dentro do circulo dentro_circ++; } } Valor_pi = 4 * dentro_circ / (double) Npont_quad; //Obtenção do valor de PI. printf(“O valor de PI eh: %lf”, Valor_pi); //Imprimir o valor de PI. }

Erro em programa de calculo de desvio padrão

Fiz um algoritmo em C++ que lê valores double para formar uma matriz. O objetivo é calcular a média e o desvio padrão dos valores de cada coluna e imprimir na tela. O algoritmo funciona normalmente até certo ponto.

Como não tenho PC e uso minha raspi 3 como desktop, estou escrevendo o codigo com nano e compilando com o g++. Segue imagem dos resultados da execução do programa:

inserir a descrição da imagem aqui

Como podem perceber, alguns valores estão corretos e outros “não sei de onde sairam”. Como não vi erro no algoritmo pensei q fosse problema no compilador ou na raspi então pedi pros meus amigos testarem no pc deles. Segue alguns resultados que eles conseguiram (Desculpem a qualidade das fotos):

inserir a descrição da imagem aqui inserir a descrição da imagem aqui inserir a descrição da imagem aqui

Até aí tudo certo, mas olha o que aconteceu quando eles colocaram valores iguais na mesma coluna:

inserir a descrição da imagem aqui inserir a descrição da imagem aqui

Não sei o porque de estar dando esses erros, e o que acho mais estranho é que os erros diferem do programa rodando na raspi 3 e nos pcs dos meus amigos(eles usaram codeblocks).

Segue o link do algoritmo: dp_columns – Github

Se alguem puder me ajudar a identificar o erro (se é que existe), ou me dar uma explicação para o porque de isso estar ocorrendo eu ficaria muito agradecido. Sugestões para melhoria do código e dicas de boas práticas de programação tambem serão aceitas de bom grado.

Ah e desculpa pelo textão! rs

Calculo de horas en php

Esta función me dá dos errores

<?php function calculohoras($  hora_inicio, $  hora_final){   $  datetime1 = new DateTime($  hora_inicio);   $  datetime2 = new DateTime($  hora_final);   $  interval = $  datetime1->diff($  datetime2);   return $  interval->format('%H:%I'); }  $  horas = calculohoras("2019-05-21 08:00:00", "2019-05-21 17:30:00"); $  pausa = calculohoras("2019-05-21 13:30:00", "2019-05-21 14:30:00");  $  total = $  horas - $  pausa;  echo $  total; ?> 

El primer error me dice lo siguiente:

Notice: A non well formed numeric value encountered 

El segundo error es que según los cálculos que he hecho en total serían 8:30 horas y me lo redondea a 8, no quiero que me lo redondee.

¿Alguna ayuda?

Calculo de quando um montante superará o outro

Estou desenvolvendo um programa para calcular quando as regra do BPC serão melhores em determinado periodo. consegui fazer o calculo do montante total, mas eu travei na parte de dizer em qual mes uma supera a outra.

segue parte do enunciado em questão

O seu algoritmo deve identificar ainda em que idade, considerando anos e meses, a regra inicialmente mais vantajosa passa ser menos vantajosa em termos de montante acumulado e vice-versa.

de acordo com as regras do BPC,a atual o idoso receberá R$ 998 a partir dos 65 anos, e a regra nova proposta receberá R$ 400 a partir dos 60, o que eu necessito fazer é dizer em qual mes e ano, o montante da regra atual irá ultrapassar o da regra antiga, segue codigo:

leia(Idade) leia(Expectativa) Diferencia_1:= 70 - Idade //calcula período que receberá R$  : 400.00             Diferencia_2:= Expectativa - 70 //calcula período que receberá R$  : 998.00              Montante_1:= 12 * (Diferencia_1 * Sal_Nova_Regra)             Montante_2:= 12 * (Diferencia_2 * Sal)              Montante_Total:= Montante_1 + Montante_2              //Proposta Atual              Diferencia_3:= Expectativa - 65              Montante_3:= 12 * (Diferencia_3 * Sal)              escreval("Montantes Totais:")             escreval("Nova Proposta R$  : ",Montante_Total)             escreval("Proposta Atual R$  : ",Montante_3)             escreval("                                 ")              se (Montante_Total > Montante_3) entao                 escreval("A nova proposta é melhor para o beneficíario.")                escreval("Pois possui maior montante!")                escreval("                                 ")              senao                 escreval("A proposta atual é melhor para o beneficíario.")                escreval("Pois possui maior montante!")                escreval("                                 ")