私はいくつかのstackoverflowの例の助けを借りてスクリプトをコーディングしましたが、もう少し進めようとすると立ち往生します。googleスクリプトを使ってGoogleスプレッドシートに値をドロップします
非常にわかりやすいようですが、うまくいかないようです。
だからここにあります: いくつかのドロップダウンメニューでダイアログボックスを開始するHTMLスクリプトをコーディングしました。ドロップダウンメニューのデータは動的で、スプレッドシート内の範囲から取得されます。私は、ユーザーがスプレッドシートを開き、スクリプトを実行し、ドロップダウン値からオプションを選択したい。これらのドロップダウン値は同じスプレッドシートに貼り付けられます。
私が働いているビットは、コードがドロップダウンボックスに移動する必要がある値を見て、そのことを示し、送信ボックスがあることです。
しかし、私はスプレッドシートに値を提出することはできません。誰でも私を助けたり、正しい方向に私を向けることができますか?
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>
私はどこかに、スクリプトやHTML側との間の接続を行うが、どこ理解できないわけではないことを知っています。
おかげで、 ティム
ありがとうございました。 HTMLコードを挿入する場所を教えてください。 HTMLは先週まで私にとって全く新しいものだったので、構文の仕組みに関する少しの知識が不足しています。ボタンのidに.HTMLの関数sheetConnect()を代入して、最終的にonclickイベントを使ってセレクションをシートに書き込む必要がありますか? select()メソッドの代わりに –
を使用して、入力タグにmyConnect()を使用します。 – noogui