Tere tulemast Google Apps Scriptsi viie laheda funktsiooni juhendisse.
- 1.Loob Google Sheetsi liidesesse uue menüü nimega “Funktsioonid”.
- loob kena juhuslike arvude tabeli, värvib selle väärtusvahemiku järgi ja väljastab kõigi L1-s olevate arvude summa.
- 2. loob ilusa lauakujunduse
- Tabeli päis: paks, tsentreeritud, värvilise ja äärisega.
- Veerud kohanduvad automaatselt andmetega.
- 3. See funktsioon juhuslike nimede loendi genereerimiseks unikaalsete ID-dega
- Luuakse 20 reaga tabel:
- Veerg A — unikaalne ID (1 kuni 20)
- Veerg B — juhuslik nimi loendist
- 4. See funktsioon automaatne aruanne uuel lehel
- Aruande pealkiri lisatakse.
- Märgitakse praegune kuupäev ja kellaaeg.
- Lisatakse juhuslik numbriline väärtus.
- 5. See funktsioon teeb statistika minigraafikuga
- Luuakse 15 juhusliku arvuga veerg pealkirjaga “Andmed”.
- Nende andmete põhjal konstrueeritakse joondiagramm.
- Graafik paigutatakse andmete kõrvale (veergu C).
1.osa

/**
* Lisab eraldi menüü iga funktsiooni käivitamiseks.
*/
function onOpen() {
SpreadsheetApp.getUi()
.createMenu("Funktsioonid")
.addItem("Funktsioon 1 – värviline maatriks", "funktsioon1")
.addItem("Funktsioon 2 – tabeli automaatne vormindamine", "funktsioon2")
.addItem("Funktsioon 3 – juhuslike nimede generaator", "funktsioon3")
.addItem("Funktsioon 4 – aruande loomine uuele lehele", "funktsioon4")
.addItem("Funktsioon 5 – statistika + graafik", "funktsioon5")
.addToUi();
}
/**
* FUNKTSIOON 1
* Genereerib 10×10 tabeli, värvib gradientidega ja lisab kokkuvõtte.
*/
function funktion1() {
const sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
const size = 10;
let matrix = [];
for (let r = 0; r < size; r++) {
let row = [];
for (let c = 0; c < size; c++) {
row.push(Math.floor(Math.random() * 100));
}
matrix.push(row);
}
const range = sheet.getRange(1, 1, size, size);
range.setValues(matrix);
// Kaunid stiilid
range.setFontFamily("Arial").setFontSize(11).setHorizontalAlignment("center");
range.setBackgrounds(
matrix.map(row =>
row.map(value =>
value > 80 ? "#ffb3b3" :
value > 50 ? "#ffe680" :
"#b3ffb3"
)
)
);
sheet.getRange("L1").setValue("Kokku: " + matrix.flat().reduce((a,b)=>a+b,0));
}

2.osa

/**
* FUNKTSIOON 2 (UUENDATUD)
* Professionaalne tabeli automaatne vormindamine:
* - stiilne päis
* - triibuline (zebra style) taust
* - automaatne veergude suuruse kohandamine
* - keskele joondamine
* - numbrite iluvorming
*/
function funktion2() {
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getDataRange();
const rows = range.getNumRows();
const cols = range.getNumColumns();
// Kaunis päis
const header = sheet.getRange(1, 1, 1, cols);
header
.setFontSize(13)
.setFontWeight("bold")
.setHorizontalAlignment("center")
.setBackground("#b7e1cd") // pastel green
.setBorder(true, true, true, true, true, true);
// Triibuline taust (zebra pattern)
for (let i = 2; i <= rows; i++) {
const rowRange = sheet.getRange(i, 1, 1, cols);
// paaris read – helehall
if (i % 2 === 0) {
rowRange.setBackground("#f2f2f2");
}
// paaritud read – valge
else {
rowRange.setBackground("#ffffff");
}
}
// Keskjoondus ja font
range.setFontFamily("Calibri");
range.setHorizontalAlignment("center");
// Numbrite automaatne vormindamine
for (let c = 1; c <= cols; c++) {
const colRange = sheet.getRange(2, c, rows - 1, 1);
colRange.setNumberFormat("#,##0.00"); // 2 kümnendit
}
// Ilusad raamid
range.setBorder(true, true, true, true, false, false);
// Automaatsed veerulaiused
sheet.autoResizeColumns(1, cols);
}

3.osa

/**
* FUNKTSIOON 3
* Loob juhuslike nimede nimekirja (20 tk) ja lisab unikaalsed ID-d.
*/
function funktion3() {
const sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
const names = ["Alex", "Mark", "Julia", "Eva", "Robert", "Kevin", "Laura", "Nina", "Marta", "Chris"];
const output = [["ID", "Nimi"]];
for (let i = 1; i <= 20; i++) {
let randomName = names[Math.floor(Math.random() * names.length)];
output.push([i, randomName]);
}
const range = sheet.getRange(1, 1, output.length, 2);
range.setValues(output);
range.setFontSize(12);
sheet.getRange("A1:B1").setBackground("#cfe2f3").setFontWeight("bold");
}

4.osa

/**
* FUNKTSIOON 4
* Loob automaatse aruande uuele lehele.
*/
function funktion4() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const report = ss.insertSheet("Aruanne " + new Date().toLocaleDateString());
report.getRange("A1").setValue("Automaatne aruanne");
report.getRange("A1").setFontSize(18).setFontWeight("bold");
report.getRange("A3").setValue("Kuupäev:");
report.getRange("B3").setValue(new Date().toLocaleString());
report.getRange("A5").setValue("Juhuslik väärtus:");
report.getRange("B5").setValue(Math.random().toFixed(4));
report.autoResizeColumns(1, 5);
}

5.osa

/**
* FUNKTSIOON 5
* Loob statistika + sisestab mini-graafiku.
*/
function funktion5() {
const sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
let values = [];
for (let i = 1; i <= 15; i++) values.push([Math.floor(Math.random() * 100)]);
const range = sheet.getRange(1, 1, 15, 1);
range.setValues(values);
sheet.getRange("A1").setFontWeight("bold").setValue("Andmed");
// Loo graafik
const chart = sheet.newChart()
.setChartType(Charts.ChartType.LINE)
.addRange(range)
.setPosition(1, 3, 0, 0)
.build();
sheet.insertChart(chart);
}
