Google Sheet Script - Save & Copy

  • Sonstige

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von n1nja.

    Google Sheet Script - Save & Copy

    Hallo Leute,

    bräuchte mal Hilfe zwecks Google Sheet.
    Habe eine Vorlage als Sheet, ist eine Rechnung.

    Jetzt möchte ich das in einen Ordner kopieren, ändern und speichern.

    Es wird leider nur das orginal Sheet kopiert.
    Die Änderungen werden nicht mit abgespeichert.

    Daraufhin, hab ich das umgedreht.
    Hab die orginal Datei geändert und dann kopiert. Ist aber leider das gleiche Problem
    Pausenzeiten etc. hab ich schon versucht.

    Hier mal ein kleines Snippet.

    PHP-Quellcode

    1. var kdnr = mainsheet.getRange(i, 3).getValue();
    2. var company = mainsheet.getRange(i, 4).getValue();
    3. var first = mainsheet.getRange(i, 5).getValue();
    4. var last = mainsheet.getRange(i, 6).getValue();
    5. var prevdoc = DriveApp.getFileById("123456");
    6. var ss = SpreadsheetApp.openById(prevdoc.getId());
    7. var sheet = ss.getSheetByName("Rechnung");
    8. sheet.getRange("A21").setValue("Rechnungsnummer: " + invnr);
    9. sheet.getRange("A8").setValue(company);
    10. sheet.getRange("A9").setValue(first + " " + last);
    11. Utilities.sleep(5000);
    12. var newid = prevdoc.makeCopy(invpath).setName(invnr);
    13. var newsheet = SpreadsheetApp.openById(newid.getId());
    14. var blob = getAsBlob(newid.getUrl(), newsheet.getSheetByName("Rechnung"));
    15. var newfile = invpath.createFile(blob).setName(invnr);
    16. //invpath.removeFile(newid);
    17. sheet.getRange("A21").setValue("Rechnungsnummer:");
    18. sheet.getRange("A8").setValue("Anrede / Firma");
    19. sheet.getRange("A9").setValue("Name Nachname");
    20. //mainsheet.getRange(i, 2).setValue(newfile.getUrl());


    Mache ich das ganze als Doc bzw. Word.
    Replace den Text, speichere... Dann klappt das wunderbar.
    Nur eben leider mit den Sheets nicht.

    Vielen Dank schonmal.

    Und noch frohe Weihnachten:)
    Oke hab das Problem gelöst.
    Danke trotzdem:)

    Lösung:
    Einfach folgenden Befehl nach dem Ändern, also setValue().
    SpreadsheetApp.flush();

    PHP-Quellcode

    1. sheet.getRange("A21").setValue("Rechnungsnummer: " + invnr);
    2. sheet.getRange("A8").setValue(company);
    3. sheet.getRange("A9").setValue(first + " " + last);
    4. SpreadsheetApp.flush();
    5. Utilities.sleep(1000);


    Hab aber schon das nächste Problem. Hab aber hier überhaupt keinen Anatz.
    Ich möchte in jede Zeile / Row einen Button einfügen. Spalte ist egal.
    Am besten wäre am Anfang. Wie man einen Button allgemein im Sheet einfügt und mit einen Script belegt, das weiß ich.
    Nur pro Zeile... kA.

    Vllt. hat da jemand eine Lösung:)