google scripts + ai

Google drive —> Google arvustustabel (google sheets)–> uus tabel

prompt: google scripts: koostoda funktsiooni mis loeb lahtrid a1 ja b1, liidab neid kokku ja kirjutab tulemus c1 lahtrisse

function liidaJaKirjuta() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  var a1 = Number(sheet.getRange("A1").getValue());
  var b1 = Number(sheet.getRange("B1").getValue());

  var summa = a1 + b1;

  sheet.getRange("C1").setValue(summa);
}

prompt: lisa veel et funktsioon peab tagastama muutuja sum ja nimeks pane summa_atribuutidega mis sõtlub kahest väärtusest mitte lahtrirest

/* prompt: lisa veel et funktsioon peab tagastama muutuja sum ja nimeks pane summa_atribuutidega mis sõtlub kahest väärtusest mitte lahtrirest
*/
function summa_atribuutidega(vaartus1, vaartus2) {
  var sum = vaartus1 + vaartus2;
  return sum;
}

Töö tabelite ja lehtede nimetustega

function kuvaAktiivneLahter() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lahter = sheet.getActiveCell();

  var aadress = lahter.getA1Notation();
  var rida = lahter.getRow();
  var veerg = lahter.getColumn();

  Logger.log("Aktiivne lahter: " + aadress);
  Logger.log("Reanumber: " + rida);
  Logger.log("Veerunumber: " + veerg);
}

prompt: funktsioon mis lisab tabelisse ülemine rida ja teine veerg

function lisaRidaJaVeerg() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  sheet.insertRowBefore(1);
  sheet.insertColumnBefore(2);
}


Lisame võimalust käivitada oma funktsioon otse failis mingi nuppu abil

prompt: kopeeri andmed lehest nimega vorm lehte nimega andmebaas ja lisa alati uue reale

function kopeeriAndmed() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // Lehed
  var vormLeht = ss.getSheetByName("vorm");
  var andmebaasLeht = ss.getSheetByName("andmebaas");

  // Võetakse andmed lehest "vorm"
  var andmed = vormLeht.getRange("A2:D2").getValues();

  var tyhiRida = andmebaasLeht.getLastRow() + 1;

  // Lisatakse järgmisele vabale reale
  andmebaasLeht.getRange(tyhiRida, 1, 1, andmed[0].length).setValues(andmed);

}

prompt: loo näidistabel toodetega, hindadega ja hinnaga koos käibemaksuga

function lisaAndmedKaibemaksuga() {
  var leht = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  leht.getRange("A1:C1").setValues([
    ["Nimetus", "Hind", "Hind käibemaksuga"]
  ]);

  var andmed = [
    ["piim", 1.2],
    ["kommid", 2.5],
    ["Coca-Cola", 1]
  ];

  for (var i = 0; i < andmed.length; i++) {
    var rida = i + 2;
    var hind = andmed[i][1];

    leht.getRange(rida, 1).setValue(andmed[i][0]);
    leht.getRange(rida, 2).setValue(hind);
    leht.getRange(rida, 3).setValue(hind * 1.2);
  }
}


prompt: kujunda kogu täidetud tabel raamiga ja tee esimene rida bold kirjaks

function kujundaTabel() {
  var leht = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  var viimasRida = leht.getLastRow();
  var viimasVeerg = leht.getLastColumn();

  if (viimasRida === 0 || viimasVeerg === 0) return;

  var vahemik = leht.getRange(1, 1, viimasRida, viimasVeerg);

  vahemik.setBorder(true, true, true, true, true, true);
  leht.getRange(1, 1, 1, viimasVeerg).setFontWeight("bold");
}


prompt: küsi kasutajalt toote nimetus, hind ja kogus popup akendes ning lisa uus rida tabelisse

function lisaUusToode() {
  var leht = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  var nimetus = Browser.inputBox("Sisesta toote nimetus:");
  if (nimetus === "cancel" || nimetus === "") return;

  var hind = parseFloat(Browser.inputBox("Sisesta hind:"));
  if (isNaN(hind)) return;

  var kogus = parseInt(Browser.inputBox("Sisesta kogus:"), 10);
  if (isNaN(kogus)) return;

  var tyhiRida = leht.getLastRow() + 1;

  leht.getRange(tyhiRida, 1).setValue(nimetus);
  leht.getRange(tyhiRida, 2).setValue(hind);
  leht.getRange(tyhiRida, 3).setValue(hind * 1.2);
  leht.getRange(tyhiRida, 4).setValue(kogus);
  leht.getRange(tyhiRida, 5).setValue(hind * kogus);

  kujundaTabel();
}

prompt: lisa veergudesse D ja E pealkirjad Kogus ja Kokku ning täida näidisandmed

function lisaKogusJaKokku() {
  var leht = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  leht.getRange("D1").setValue("Kogus");
  leht.getRange("E1").setValue("Kokku");

  var kogused = [3, 5, 2];

  for (var i = 0; i < kogused.length; i++) {
    var rida = i + 2;
    var hind = Number(leht.getRange(rida, 2).getValue());

    leht.getRange(rida, 4).setValue(kogused[i]);
    leht.getRange(rida, 5).setValue(hind * kogused[i]);
  }
}

prompt: loo spreadsheet menüü nimega Tooted ja lisa sinna mitu nuppu funktsioonide käivitamiseks

function onOpen() {
  var ui = SpreadsheetApp.getUi();

  ui.createMenu("🛒 Tooted")
    .addItem("Lisa andmed + käibemaks", "lisaAndmedKaibemaksuga")
    .addItem("Kujunda tabel", "kujundaTabel")
    .addItem("Lisa uus toode", "lisaUusToode")
    .addItem("Lisa Kogus ja Kokku", "lisaKogusJaKokku")
    .addSeparator()
    .addItem("Kopeeri vorm -> andmebaas", "kopeeriAndmed")
    .addItem("🧹 Kustuta andmed", "kustutaAndmed")
    .addToUi();
}

prompt: google scripts: küsi kinnitust ja kustuta kõik tabeli read alates teisest reast

function kustutaAndmed() {
  var leht = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var ui = SpreadsheetApp.getUi();

  var vastus = ui.alert(
    "Kustuta andmed",
    "Kas oled kindel? Kõik andmed kustutatakse!",
    ui.ButtonSet.YES_NO
  );

  if (vastus === ui.Button.YES) {
    var viimasRida = leht.getLastRow();

    if (viimasRida > 1) {
      leht.getRange(
        2,
        1,
        viimasRida - 1,
        leht.getLastColumn()
      ).clearContent();
    }

    ui.alert("Andmed kustutatud!");
  }
}