No tengo conocimiento de JS ni de ninguna extensión, este código me queda mejor. Entonces, lo que debo hacer es recibir la última fila de la matriz que corresponde a la fecha de hoy 13.10 hoy -> 13.10 hoy se agregó una fila y se la envió al bot en Telegram, pero toda la matriz está enviando, como todas las filas de esa matriz que contiene 12.10.2021, 13.10.2021, etc.
Este código debería llevar la(s) última(s) línea(s) añadida(s) a la tabla dependiendo de la fecha, si la fecha de hoy está al lado de la línea, esta línea se envía como un mensaje en Telegram.
Pero no tengo idea de cómo forzarlo a obtener la última fila (filas) de la matriz. ingrese la descripción de la imagen aquí
const token = "my Token"; function timer() { let ss = SpreadsheetApp.getActiveSpreadsheet(); let ws = ss.getSheetByName("SheetName"); let data = ws.getRange(2, 1, ws.getLastRow()-1, 10).getValues(); // console.log(data) let curentTime = new Date().getDate() + "." + (new Date().getMonth() + 1) + "." + new Date().getFullYear(); // console.log(curentTime) for (i = 0; i < data.length; i++) { let dataInfo = data[i]; // console.log(dataInfo) let clientName = dataInfo[3]; // console.log(clientName) let clientBirthday = dataInfo[0].toString(); // console.log(clientBirthday) let clientIdChat = "myID"; if (dataInfo[0] !== ""){ clientBirthday = dataInfo[0].getDate() + "." + (dataInfo[0].getMonth() + 1) + "." + dataInfo[0].getFullYear(); // console.log(clientBirthday) } if (clientBirthday == curentTime){ sendText(clientIdChat,data.toString()); } } // console.log(curentTime) } function sendText(chatId, text, keyBoard) { let data = { method: 'post', payload: { method: 'sendMessage', chat_id: String(chatId), text: text, parse_mode: 'HTML', reply_markup: JSON.stringify(keyBoard) } } UrlFetchApp.fetch('https://api.telegram.org/bot' + token + '/', data); }
> A/Дата надходження B/Компанія C/ІПН D/ПІБ E/Номер справи F/Суд G/Область H/Місто відповідача I/Адреса відповідача J/Посилання на документ > A/12.10.2021 B/AC/1 D/Name E/111/3433/99 J/Link to document > A/13.10.2021 B/BC/2 D/name E/111/3433/99 J/Link to document
Creo que hay 2 problemas:
sendText
debe anidarse dentro del ciclo for
, por lo que solo lo ejecutará una vez que haya coincidido con el cumpleañossendText
debería enviar dataInfo.toString
no data.toString
, ya que dataInfo
refleja la fila actual mientras que data
es la matriz completaHe reescrito ese segmento del código:
for (i = 0; i < data.length; i++) { let dataInfo = data[i]; // console.log(dataInfo) let clientBirthday = dataInfo[0].toString(); console.log(clientBirthday) if (clientBirthday == curentTime){ let clientName = dataInfo[3]; //console.log(clientName) let clientIdChat = "myID"; sendText(clientIdChat,dataInfo.toString()); } }