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.
