Frage von dirtybobic, 27

GoogleScript in HTML implementieren?

Hey Leute,

Ich komme mit einem Problem einfach nicht weiter:

Ich will Werte aus HTML Inputs abgreifen und per forLoop in ein Google Sheet übertragen. Dies soll per Button ausgelöst werden. Dazu habe ich eine Funktion geschrieben. Die Funktionen funktionieren soweit , nur die Datenübertragung in das GoogleSheet klappt nicht: da ich große Probleme habe meine Frage hier inklusive Code richtig zu formatieren poste ich einen Link zu meiner Frage aus einem Forum. Sorry dafür - ich würde mich sehr über antworten auf dieser Plattform dazu freuen:

http://www.coding-board.de/threads/googlescript-in-html-implementieren.37078/

Liebe Grüße

Antwort
von RakonDark, 10

ReferenceError: SpreadsheetApp is not defined

wie genau machst du das den , einloggen als user oder ist dein spreadsheet öffentlich  etc . Lesen heisst ja noch nix , aber es ist wohl so das die Funktion SpreadsheetApp nicht vorhanden ist , deswegen ist das vorgehen wichtig .

Kommentar von dirtybobic ,

Man kann das Sheet freigeben. Aktuell habe nur ich zugriff, aber ich kann es auch als anonym einstellen, sodass jeder Zugriff hat. Das Eintragen in die Tabelle funktioniert auch (habe schon andere Methoden versucht) ebenso wie das abholen aus Werten von dem Sheet.

Nur bisher habe ich es so gelöst, dass ich 2 Funktionen geschrieben habe - eine im index.html und eine im Code.gs (GoogleCode). Der Verlauf war dabei so INPUT.VALUE->BUTTON->FUNKTION im INDEX.HTML -> WERTÜBERGABE -> FUNKTION im Code.Gs -> WERTÜBERGABE -> GoogleSheet

Das große Problem weshalb ich die bisherige Vorgehensweise nicht hier verwenden möchte ist, dass die beiden Funktionen (index.html und code.gs) asynchron laufen, d.h. die eine Funktion übergibt schon wieder Werte wenn die andere Funktion noch mit den alten zu tun hat. Somit entstehen dann Lücken in der Datenübertragung. Wenn ich das ganze jedoch in eine Funktion aus der index.html integrieren könnte hätte ich dieses Problem nicht...

Kommentar von RakonDark ,

das asyncrone sollte aber kein problem sein , bzw was nennst du den lücken ? ist dein excelsheet eine datenbank ? zählst du da irgendwo was hoch um eine neue zeile einzufühgen oder wo ist das Problem . Irgendwie muss da ein denkfehler sein , asyncron sollte nie ein problem sondern ein vorteil sein ;)

Kommentar von dirtybobic ,

Das Problem ist Funktion A holt die Werte der Inputs mittels ForSchleife ab und überträgt sie an Funktion B, welche die Werte wiederum in das GoogleSpreadsheet überträgt.
Wenn ich die Werte in Funktion per Console.Log ansehe ist alles in Ordnung. In der Tabelle kann es jedoch vorkommen, dass Werte durcheinandergeraten oder gar übersprungen werden. Ich erkläre mir dies durch die unterschiedlichen Zyklen der Funktionen.

Kommentar von dirtybobic ,

*in Funktion A

Kommentar von RakonDark ,

dann hast du ohne index gearbeitet , böser fehler .

wenn musst du mit datensätzen arbeiten , diese dann sortierfähig machen, das wieder die gleiche reihenfolge nach dem sortieren entstehen kann und dann diese hilfsspalte wieder löschen .

Kommentar von RakonDark ,

Du wirst aber diesen Umweg gehen müssen denn SpreadsheetApp läuft nur auf dem google server und nicht im client .

Antwort
von RakonDark, 12

Das Feld F2 mit einem Wert füllen z.b. "Hallo"


SpreadsheetApp.getActiveSheet().getRange('F2').setValue('Hello');




Kommentar von dirtybobic ,

Werte sind ja eingetragen....

setValues([[Nr, datum, sname,Uart,UZeit]]);}

(habe versehentlich getValues hingeschrieben, meinte aber "set")

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten