Ich habe ein Skript mit Hilfe von mehreren stackoverflow Beispielen codiert, aber ich bleibe stecken, wenn ich versuche, ein bisschen weiter zu gehen.Drop-Down-Werte in Google Tabellenkalkulation mit Google Skript
Es scheint sehr einfach, aber ich kann nicht scheinen, es auszuarbeiten.
Also hier ist es: Ich habe ein HTML-Skript, das eine Dialogbox mit einigen Dropdown-Menüs initiiert codiert. Die Daten in den Dropdown-Menüs sind dynamisch und stammen aus einem Bereich in einer Tabelle. Ich möchte, dass Benutzer die Tabelle öffnen, das Skript ausführen und die Optionen aus den Dropdown-Werten auswählen. Diese Dropdown-Werte werden in dieselbe Tabelle eingefügt.
Das Bit, das ich funktionierte, ist, dass der Code die Werte sieht, die in die Dropdown-Box gehen müssen, das veranschaulicht und dass es eine Submit-Box gibt.
Allerdings kann ich nicht scheinen, um die Werte in die Tabelle zu übermitteln. Könnte mir bitte jemand helfen oder mich in die richtige Richtung weisen?
test.gs
function openInputDialog1() {
var html = HtmlService.createHtmlOutputFromFile('Test').setSandboxMode(HtmlService.SandboxMode.IFRAME);
SpreadsheetApp.getUi()
.showModalDialog(html, 'Add Item');
}
function getMenuListFromSheet() {
return SpreadsheetApp.getActive().getSheetByName('Part Names')
.getRange(1,5,6,1).getValues();
}
function getThicknessFromSheet(){
return SpreadsheetApp.getActive().getSheetByName('Part Names')
.getRange(1,5,6,1).getValues();
}
function itemadd(form) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Part Names');
var LastRow=sheet.getLastRow();
Logger.log(LastRow);
Logger.log(form);
sheet.getRange(LastRow+1,1,1,2).setValues(form);
return true;
}
Test.html
<!DOCTYPE html>
<html>
<p>List of parts:</p>
<select id="menu">
<option></option>
<option>Google Chrome</option>
<option>Firefox</option>
</select>
<select id="thickness">
<option></option>
<option>1</option>
<option>2</option>
</select>
<script
src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<input type="submit" value="Submit" onclick="select()">
<script>
// The code in this function runs when the page is loaded.
$(function() {
google.script.run.withSuccessHandler(showMenu)
.getMenuListFromSheet();
google.script.run.withSuccessHandler(showThickness)
.getThicknessFromSheet();
});
/**function showThings(things) {
var list = $('#things');
list.empty();
for (var i = 0; i < things.length; i++) {
list.append('<li>' + things[i] + '</li>');
}
}
**/
function showMenu(menuItems) {
var list = $('#menu');
list.find('option').remove(); // remove existing contents
for (var i = 0; i < menuItems.length; i++) {
list.append('<option>' + menuItems[i] + '</option>');
}
}
function showThickness(menuThickness) {
var list = $('#thickness');
list.find('option').remove(); // remove existing contents
for (var i = 0; i < menuThickness.length; i++) {
list.append('<option>' + menuThickness[i] + '</option>');
}
}
</script>
<script>
function select(){
var x = document.getElementById('menu').value;
var y = document.getElementById('thickness').value;
google.script.run
.itemadd(x,y)
google.script.host.close();
</script>
</html>
Ich weiß, dass ich irgendwo nicht die Verbindung zwischen dem Skript machen bin und die HTML-Seite aber nicht, wo zu verstehen .
Danke, Tim
Danke für diesen Noogui. Könnten Sie mir bitte zeigen, wo ich das HTML-Code-Bit einfügen muss? HTML ist bis letzte Woche völlig neu für mich, daher vermisse ich etwas Wissen darüber, wie die Syntax funktioniert. Muss ich die Funktion sheetConnect() in .HTML einer Button-ID zuweisen, um schließlich mit einem onclick-Event die Auswahl auf das Blatt zu schreiben? –
anstelle Ihrer select() -Methode, verwenden Sie mein sheetConnect() auf Ihrem Eingabe-Tag. – noogui