我通常不会使用网络,所以不太熟悉JS / HTML技巧。
我正在尝试使用侧边栏创建Google电子表格。 侧边栏有2个组合框和一个按钮,我希望当单击按钮时,电子表格中的相关单元格将填充基于组合框选择的数据。
以下是我目前的情况:
<html>
<head>
<base target="_top">
</head>
<body>
<script>
function update(){
val qEl = document.getElementById("quarter");
val q = qEl.options[qEl.selectedIndex].value;
val lEl = document.getElementById("l2");
val l = qEl.options[lEl.selectedIndex].value;
google.script.run.update(q, l);
}
</script>
Select
<select id="l2">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<br/>
Select
<select id="quarter">
<option value="C6:N6">Q1</option>
<option value="O6:Z6">Q2</option>
<option value="AA6:AL6">Q3</option>
<option value="AM6:AX6">Q4</option>
</select>
</br>
<input type="button" value="Add" onclick="update()"/>
</body>
</html>
然后是Google脚本代码:
function update() {
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
var html = HtmlService.createHtmlOutputFromFile('AddLarge')
.setTitle('Add large item')
.setWidth(300);
SpreadsheetApp.getUi().showSidebar(html);
}
function updateLarge(cell, value) {
SpreadsheetApp.getActive().getActiveSheet().getRange(cell).setValue(value);
}
这不起作用....:\
答案 0 :(得分:0)
以下修改如何?
var
。我认为这可能是一个错字。var l = qEl.options[lEl.selectedIndex].value;
,使用qEl
。因此,检索在"quarter"
处选择的值。我认为var l = document.getElementById("l2").value;
也可以使用。google.script.run.update(q, l);
,则会将q, l
发送到GAS脚本的update()
。在您的情况下,我认为q, l
应该发送到updateLarge(cell, value)
。当这些内容反映到您的脚本中时,您的脚本将变为下方。请对HTML中的javascript进行此修改。我认为你的GAS脚本运行正常。
<script>
function update(){
val qEl = document.getElementById("quarter");
val q = qEl.options[qEl.selectedIndex].value;
val lEl = document.getElementById("l2");
val l = qEl.options[lEl.selectedIndex].value;
google.script.run.update(q, l);
}
</script>
<script>
function update() {
var qEl = document.getElementById("quarter");
var q = qEl.options[qEl.selectedIndex].value;
var lEl = document.getElementById("l2");
var l = lEl.options[lEl.selectedIndex].value;
google.script.run.updateLarge(q, l);
}
</script>
如果我误解了你的问题,我很抱歉。