Ülesanne 1 – Google Script

Funktsioon 1 – Lisa Andmed

// ===== 1. Andmete lisamine + KM arvutus =====

function lisaAndmed() {

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // Tühjenda vana sisu
  sheet.clear();

  // Päised
  const headers = [["Nimetus", "Hind", "Hind käibemaksuga"]];
  sheet.getRange(1, 1, 1, 3).setValues(headers);

  // Andmed
  const data = [
    ["piim", 1.2],
    ["kommid", 2.5],
    ["Coca-Cola", 1]
  ];

  // Arvuta KM-ga hind
  const finalData = data.map(row => {
    const hind = row[1];
    const kmHind = hind * 1.2;
    return [row[0], hind, kmHind];
  });

  // Lisa tabelisse
  sheet.getRange(2, 1, finalData.length, 3).setValues(finalData);

  // Vormindus
  kujundaTabel();
}

Funktsioon 2 – Tabeli Kujundamine

// ===== 2. Tabeli kujundamine =====

function kujundaTabel() {

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  const range = sheet.getDataRange();

  // Border
  range.setBorder(true, true, true, true, true, true);

  // Bold päis
  sheet.getRange(1, 1, 1, sheet.getLastColumn())
    .setFontWeight("bold");

  // Veeru laiused
  sheet.autoResizeColumns(1, sheet.getLastColumn());
}

Funktsioon 3 – Lisa Toode Inputiga

// ===== 3. InputBox andmete lisamine =====

function lisaToodeInputiga() {

  const ui = SpreadsheetApp.getUi();
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // Küsi kasutajalt andmed
  const nimetus = ui.prompt("Sisesta toote nimetus").getResponseText();
  const hindText = ui.prompt("Sisesta hind").getResponseText();

  const hind = parseFloat(hindText);

  if (isNaN(hind)) {
    ui.alert("Vale hind!");
    return;
  }

  // KM-ga hind
  const kmHind = hind * 1.2;

  // Leia järgmine tühi rida
  const lastRow = sheet.getLastRow() + 1;

  // Lisa andmed
  sheet.getRange(lastRow, 1, 1, 3)
    .setValues([[nimetus, hind, kmHind]]);

  // EURO formaat
  sheet.getRange(lastRow, 2, 1, 2)
    .setNumberFormat("€0.00");

  kujundaTabel();
}

Funktsioon 4 – Lisa Kogus ja Kokkus

// ===== 4. Laiendatud tabel =====

function lisaKogusJaKokku() {

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // Lisa uued päised
  sheet.getRange(1, 4).setValue("Kogus");
  sheet.getRange(1, 5).setValue("Kokku");

  const lastRow = sheet.getLastRow();

  // Arvuta kokku
  for (let i = 2; i <= lastRow; i++) {

    const hind = sheet.getRange(i, 2).getValue();

    // Näidis kogus
    const kogus = 2;

    sheet.getRange(i, 4).setValue(kogus);

    const kokku = hind * kogus;

    sheet.getRange(i, 5).setValue(kokku);
  }

  // EURO formaat
  sheet.getRange(2, 5, lastRow - 1, 1)
    .setNumberFormat("€0.00");

  kujundaTabel();
}

Funktsioon 5 – Minu Funktsioonid Menüü

// ===== 5. Kohandatud menüü =====

function onOpen() {

  const ui = SpreadsheetApp.getUi();

  ui.createMenu("Minu Funktsioonid")
    .addItem("Lisa algandmed", "lisaAndmed")
    .addItem("Lisa uus toode", "lisaToodeInputiga")
    .addItem("Lisa kogus ja kokku", "lisaKogusJaKokku")
    .addSeparator()
    .addItem("Kustuta andmed", "kustutaAndmed")
    .addItem("Sorteeri hind", "sorteeriHinnaJargi")
    .addToUi();
}

Funktsioon 6 – Kustuta Andmed

// ===== 6. Lisafunktsioonid =====

// 6.1 Andmete kustutamine

function kustutaAndmed() {

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  sheet.clear();

  SpreadsheetApp.getUi().alert("Andmed kustutatud!");
}

Andmed kustutatud

Funktsioon 7 – Sorteeri Andmed Hinna Järgi

// 6.2 Sorteerimine hinna järgi

function sorteeriHinnaJargi() {

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  const range = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn());

  range.sort({column: 2, ascending: true});

  SpreadsheetApp.getUi().alert("Tabel sorteeritud!");
}

Minu Google Tabeli Link

https://docs.google.com/spreadsheets/d/1iBFt-OrbGazC1DVRawbZyw8LNqVGxx2BqA0T9YM40TE/edit?gid=0#gid=0