Skip to content
Avaleht » Google Apps Scripts näited

Google Apps Scripts näited

Esimene näide on tõlkija

Kui kirjutate ühe või mitu sõna, tõlgitakse need automaatselt teatud keeltesse.

*Originaalkood*
// Funktsioon onEdit on päästik, mis käivitub, kui kasutaja lõpetab andmete tabeli lahtrisse sisestamise
// https://developers.google.com/apps-script/guides/triggers/#onedite
function onEdit(e) {
  Logger.log(e);

  // Saame rakkude vahemiku, milles muutused toimusid
  // https://developers.google.com/apps-script/reference/spreadsheet/range
  var range = e.range;

  // Leht, millel muudatused tehti
  // https://developers.google.com/apps-script/reference/spreadsheet/sheet
  var sheet = range.getSheet();

  // Kontrollime, kas see on see leht, mida vajame
  Logger.log(sheet.getName());
  if (sheet.getName() != 'Перевод текста') {
    return false;
  }

  // Ainult esimesse veergu sisestatud tekst on vaja tõlkida.
  // Vahemiku alguspositsiooni kontrollimine
  Logger.log(range.getColumn());
  if  (range.getColumn() != 1) {
    return false;
  }

  for (var i = 1; i <= range.getNumRows(); i++) {
    var cell = range.getCell(
      i, // rea number
      1 // veeru number
    );

    // Saame teksti vene keeles
    var russianText = cell.getValue();

    // Teksti tõlkimine inglise keelde
    // https://developers.google.com/apps-script/reference/language/language-app
    var translatedText = LanguageApp.translate(
      russianText, // tekst
      'ru', // mis keelest me tõlgime
      'en' // mis keelde me tõlgime
    );

    // Kleepige tõlgitud tekst teise veergu
    sheet.getRange(
      cell.getRowIndex(),
      2 
    ).setValue(translatedText);
  }

}

Näide koodi toimimisest

*Ümbertöödeldud (lisatud veel 2 keelt: eesti ja hispaania)*
function onEdit(e) {
  Logger.log(e);

  // Saame rakkude vahemiku, milles muutused toimusid
  // https://developers.google.com/apps-script/reference/spreadsheet/range
  var range = e.range;

  // Leht, millel muudatused tehti
  // https://developers.google.com/apps-script/reference/spreadsheet/sheet
  var sheet = range.getSheet();

  // Kontrollime, kas see on see leht, mida vajame
  Logger.log(sheet.getName());
  if (sheet.getName() != 'Перевод текста') {
    return false;
  }

  // Ainult esimesse veergu sisestatud tekst on vaja tõlkida.
  // Vahemiku alguspositsiooni kontrollimine
  Logger.log(range.getColumn());
  if  (range.getColumn() != 1) {
    return false;
  }

  for (var i = 1; i <= range.getNumRows(); i++) {
    var cell = range.getCell(
      i, 
      1 
    );

    
    var russianText = cell.getValue();

    
    // https://developers.google.com/apps-script/reference/language/language-app
    var translatedText = LanguageApp.translate(
      russianText, // текст
      'ru', 
      'en' 
    );

    var translatedText2 = LanguageApp.translate(
      russianText, // текст
      'ru', 
      'et' 
    );
    
    var translatedText3 = LanguageApp.translate(
      russianText, // текст
      'ru', 
      'es' 
    );

   
    sheet.getRange(
      cell.getRowIndex(), 
      2 
    ).setValue(translatedText);

    //eesti keel
    sheet.getRange(
      cell.getRowIndex(), 
      3 
    ).setValue(translatedText2);

    //hispaania keel
    sheet.getRange(
      cell.getRowIndex(), 
      4 
    ).setValue(translatedText3);

  }

  

}

Näide koodi toimimisest

Teine näide – HTML-teenusega töötamine

Avab külgakna, kuhu saate sisestada teatud andmed meie valitud reale. Pärast kinnitamist kuvatakse need määratud rea lahtrites.

*Originaalkood*

function showSidebar() {

    // Ühendage Bootstrap
    var sidebarHTML = '<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">';
    // Ühendage jQuery
    sidebarHTML += '<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';

    // Vormi loomine
    sidebarHTML += '<form style="padding: 20px;text-align:center;">\
        <div class="form-group">\
            <label for="name">Имя</label>\
            <input type="text" class="form-control" id="name" name="name" value="">\
        </div>\
        <div class="form-group">\
            <label for="abrakadabra">Какая-то абракадабра</label>\
            <textarea class="form-control" id="abrakadabra" name="abrakadabra" rows="3"></textarea> \
        </div>\
        <div class="form-group">\
            <label for="strNum">Номер строки, в которую необходимо внести данные</label>\
            <input type="text" class="form-control" id="strNum" name="strNum" value="">\
        </div>\
        <button type="submit" class="btn btn-primary">Записать данные в таблицу</button>\
        <br><br><br>\
        <button type="button" id="sidebarClose" class="btn btn-danger">Закрыть сайдбар</button>\
    </form>';

    
    sidebarHTML += "<script>\
     $(document).on('submit', 'form', function () { \
        google.script.run \
     .withSuccessHandler(function (resultMsg) { \
                  alert(resultMsg);\
         })\
     .writeStrInTable(\
                { name: $('#name').val(), abrakadabra: $('#abrakadabra').val(), strNum: $('#strNum').val() }\
     );\
        return false;\
     });\
\
     $('#sidebarClose').on('click', function() {\
        google.script.host.close();\
     });\
     </script>";


    var htmlOutput = HtmlService
        .createHtmlOutput(sidebarHTML)
        .setTitle('My add-on');

// https://developers.google.com/apps-script/reference/base/ui#showsidebaruserinterface
    SpreadsheetApp.getUi().showSidebar(htmlOutput);

}

function writeStrInTable(e) {
    var name = e.name;
    var abrakadabra = e.abrakadabra;
    var strNum = parseInt(e.strNum);

    // Получаем объект с активной (открытой в данный момент) таблицей
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getActiveSheet();

    // Записываем полученные данные в таблицу
    sheet.getRange("A" + strNum).setValue(name);
    sheet.getRange("B" + strNum).setValue(abrakadabra);

    return "Всё прошло успешно!";
}

Külgriba, kuhu me andmeid sisestame.

Kirjutatu kuvatakse kindlale reale kindlate andmetega.

*Ümbertöödeldud (lisati kuupäeva vahekaart ja mõned sildid kirjutati ümber)*
// Открытие сайдбара
function showSidebar() {

    // Подключаем Bootstrap
    var sidebarHTML = '<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">';
    // Подключаем jQuery
    sidebarHTML += '<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>';

    // Создаём форму
    sidebarHTML += '<form style="padding: 20px;text-align:center;">\
        <div class="form-group">\
            <label for="name">Имя клиента</label>\
            <input type="text" class="form-control" id="name" name="name" value="">\
        </div>\
        <div class="form-group">\
            <label for="abrakadabra">Что желает купить</label>\
            <textarea class="form-control" id="abrakadabra" name="abrakadabra" rows="3"></textarea> \
        </div>\
        <div class="form-group">\
            <label for="strNum">Номер строки, в которую необходимо внести данные</label>\
            <input type="text" class="form-control" id="strNum" name="strNum" value="">\
        </div>\
        <div class="form-group">\
            <label for="datata">Дата оформления заказа</label>\
            <input type="date" class="form-controll" id="datata" name="datata" value="">\
        </div>\
        <button type="submit" class="btn btn-primary">Подтвердить</button>\
        <br><br><br>\
        <button type="button" id="sidebarClose" class="btn btn-danger">Закрыть</button>\
    </form>';

    // Добавляем скрипты
    // При сабмите формы вызываем функцию writeStrInTable() и передаём ей введённые данные
    // https://developers.google.com/apps-script/guides/html/reference/run
    // При клике на кнопку 'Закрыть сайдбар' закрываем его
    // https://developers.google.com/apps-script/guides/html/reference/host#close()
    sidebarHTML += "<script>\
     $(document).on('submit', 'form', function () { \
        google.script.run \
     .withSuccessHandler(function (resultMsg) { \
                  alert(resultMsg);\
         })\
     .writeStrInTable(\
                { name: $('#name').val(), abrakadabra: $('#abrakadabra').val(), strNum: $('#strNum').val(), datata: $('#datata').val() }\
     );\
        return false;\
     });\
\
     $('#sidebarClose').on('click', function() {\
        google.script.host.close();\
     });\
     </script>";


    var htmlOutput = HtmlService
        .createHtmlOutput(sidebarHTML)
        .setTitle('My add-on');

// https://developers.google.com/apps-script/reference/base/ui#showsidebaruserinterface
    SpreadsheetApp.getUi().showSidebar(htmlOutput);

}

function writeStrInTable(e) {
    var name = e.name;
    var abrakadabra = e.abrakadabra;
    var datata=e.datata;
    var strNum = parseInt(e.strNum);

    // Получаем объект с активной (открытой в данный момент) таблицей
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getActiveSheet();

    // Записываем полученные данные в таблицу
    sheet.getRange("A" + strNum).setValue(name);
    sheet.getRange("B" + strNum).setValue(abrakadabra);
    sheet.getRange("C" + strNum).setValue(datata);

    return "Данные записаны!";
}

Külgriba, kuhu me andmeid sisestame.

Kirjutatu kuvatakse kindlale reale kindlate andmetega.