Задать вопрос
  • Как настроить уведомления о наступлении даты события в таблице Google Docs (Drive)?

    @n_shtain
    1.Пример организации данных:
    https://docs.google.com/spreadsheets/d/1Vx2P0pmdyW...
    2.Скрипт который нужно поместить в "Код.gs" через меню Инструменты->Редактор скриптов:
    function emailsend () //Отправляет e-mail при выполнении условия описанного в if
    {
      var sovpadenieDat = in_array(reminder (), perebor_dat());
      if(sovpadenieDat > -1) 
      {
        MailApp.sendEmail(
                          "example@mail.ru",
                           perebor_dat()[in_array(reminder (), perebor_dat())] + " тебе нужно " + vozvrat_temy()[in_array(reminder (), perebor_dat())],                             
                          'Привет! Это напоминание про дело которм тебе нельзя забывать.'
                         )
      }
    } 
     
    function reminder ()  //Прибавляет к текущей дате 3 дня. Возвращается не дата, а строка но ее сравнение с содержимым массива perebor_dat() прокатывает
    {
      var dates = new Date()
      var reminderMonth = dates.getMonth()+1;
      var reminderDate = dates.getDate() +3 ;
      var reminderYear = '2015';
      return reminderDate + "." + reminderMonth 	+ "." + reminderYear;
    }
    
    function perebor_dat() //Возвращает массив отформатированных значений содержащихся на текущем листе в диапазоне A2:Z2. Проблема с возвратом значений из ячеек AA2, AB2 так как цикл проходит только по алфавиту
    {
      var kolonkaplus = [];
      for (var i=65; i<=90; i++)
      {
        kolonkaplus.push(Utilities.formatDate(new Date(SpreadsheetApp.getActiveSheet().getRange(String.fromCharCode(i)+'2').getValues()), "GMT+3", "d.M.yyyy"));
      }
      return kolonkaplus;
    }
    
    function vozvrat_temy() //Возвращает массив отформатированных значений содержащихся на текущем листе в диапазоне A1:Z1. Проблема с возвратом значений из ячеек AA1, AB1 так как цикл проходит только по алфавиту
    {
      var kolonkaplus = [];
      for (var i=65; i<=90; i++)
      {
        kolonkaplus.push(SpreadsheetApp.getActiveSheet().getRange(String.fromCharCode(i)+'1').getValues());
      }
      return kolonkaplus;
    }
    
    function in_array(value, array) //Проверяет массив на наличие в нем значения
    {
      for(var i = 0; i < array.length; i++) 
      {
        if(array[i] == value) return i;
      }
      return -1;
    }

    3. В редакторе скриптов нужно установить треггер текущего проекта на то время в которое вы хотите чтобы вам приходила напоминалка.
    4. example@mail.ru вместо этого устанавливаете свою почту. var reminderDate = dates.getDate() +3 тройку меняете в зависимости от того за какой срок в сутках до даты события вам нужно отправлять напоминалку.

    Обновления здесь: https://github.com/mc-sim/GoogleDocs_uvedomlenie_o...
    PS: С гитхабом только начинаю разбираться.
    Ответ написан
    1 комментарий