Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (4)

Лучшие ответы пользователя

Все ответы (16)
  • Автоматическое создание checkbox в google sheets, как сделать?

    shebanits
    @shebanits
    function onEdit(e) {
      let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      let row = e.range.getRow();
      let column = e.range.getColumn();
      let value = e.source.getActiveSheet().getRange(row, 1).getValue();
      let checkbox = SpreadsheetApp.newDataValidation().requireCheckbox().setAllowInvalid(false).build();
    
      if (column == 1 && value !== "") {
        sheet.getRange(row, 2).setDataValidation(checkbox).setValue(false);
      }
    
    }
    Ответ написан
  • Как настроить подтягивание данных?

    shebanits
    @shebanits
    1. Создайте простую таблицы
    600ff0b05eb84698106396.png
    2. Скопируйте в переменную ID переменную вашей главной папки.
    3. С помощью функции downloadData() загрузите в таблицу данные о вложенных папках.
    4. Чтобы создать папку напишите название папки в столбике folder name и запустите функцию createFolder().
    600ff1aaea441717717040.png
    let ID = "<id вашей папки>";
    
    function createFolder() {
      let mainFolder = DriveApp.getFolderById(ID);
      let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      let foldersNames = sheet.getRange(2, 1, sheet.getLastRow(), 3).getValues();
      let folders = mainFolder.getFolders();
      let arr = [];
    
      while (folders.hasNext()) {
        let folder = folders.next();
        arr.push({
          "name": folder.getName(),
          "folderID": folder.getId(),
          "lastUpdated": folder.getLastUpdated()
        })
      }
    
      let res = arr.map(item => item.name);
    
      foldersNames.forEach((el, index) => {
        if (typeof el[0] === "string" && res.indexOf(el[0]) === -1 && el[0] != "") {
          let nFolder = mainFolder.createFolder(el[0]);
          sheet.getRange(index + 2, 2, 1, 2).setValues([[nFolder.getId(), nFolder.getLastUpdated()]]);
    console.log(`New folder created! 
    name: ${el[0]}
    creation date: ${nFolder.getLastUpdated()}
    `)
        }
    
      })
    
    }
    
    function downloadData() {
      let mainFolder = DriveApp.getFolderById(ID);
      let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      let foldersNames = sheet.getRange(2, 1, sheet.getLastRow(), 3).getValues().map(item => item[0]);
      let folders = mainFolder.getFolders();
      let arr = [];
    
      while (folders.hasNext()) {
        let folder = folders.next();
        arr.push({
          "name": folder.getName(),
          "folderID": folder.getId(),
          "lastUpdated": folder.getLastUpdated()
        })
      }
    
      arr.forEach(el => {
        if (foldersNames.indexOf(el.name) === -1 && foldersNames.indexOf(el.folderID) === -1) {
          sheet.getRange(sheet.getLastRow() + 1, 1, 1, 3).setValues([[el.name, el.folderID, el.lastUpdated]]);
        }
      })
      console.log(arr)
    }
    Ответ написан
  • Как добавить кнопки в телеграм бот через JavaScript?

    shebanits
    @shebanits
    function sendMessage(from_chat_id, text, keyboard, id_msg) { // Отправляет сообщение используя sendMessage
      var data = {
        method: "sendMessage",
        chat_id: String(from_chat_id),
        text: text,
        parse_mode: "HTML",
        reply_markup: JSON.stringify(keyboard),
        reply_to_message_id: String(id_msg)
      };
      var options = {
        method: 'POST',
        payload: data,
        muteHttpExceptions: true
      };
      var response = UrlFetchApp.fetch('https://api.telegram.org/bot' + token + '/sendMessage', options);
      console.log(JSON.parse(response.getContentText(), null, 7))
    }
    
    let keyboard_contact = {
      keyboard: [
        [{
          text: "Авторизоваться",
          request_contact: true
        }]
      ],
      resize_keyboard: true,
      one_time_keyboard: true
    };
    
    let keyboard_menu_inline = {
      inline_keyboard: [
          [{
            text: "Услуги  ",
            callback_data: "services"        
          }, {
            text: "Оплата  ",
            url: "https://google.com",
            callback_data: "pay"         
          }],
          [{
            text: "Статус ✅ ",
            url: "https://google.com"        
          }, {
            text: "Обратная связь  ",
            callback_data: "support"        
          }]
        ]
    };
    
    sendMessage(from_chat_id, text, keyboard)
    Ответ написан
  • Как сделать так, чтобы Google таблица открывалась в нужном месте?

    shebanits
    @shebanits
    function onEdit(e){
      let row = e.range.getRow();
      let column = e.range.getColumn();
    
      let cache = CacheService.getScriptCache();
      cache.putAll({
        "row": `${row}`,
        "column": `${column}`
      });
    }
    
    function onOpen() {
      let cache = CacheService.getScriptCache();
      let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      let row = cache.get("row");
      let column = cache.get("column");
      sheet.getRange(+row, +column).activate();
      SpreadsheetApp.flush();
    
    }
    Ответ написан