【发布时间】:2015-08-01 07:32:36
【问题描述】:
您好,我正在尝试使用 html 和 google 脚本获取下拉列表。 列表的值应从谷歌电子表格中填充。在stackoverflow上搜索了很多之后,我管理了下面的代码。但我仍然无法从电子表格中获取数据作为下拉选项。没有错误,但我只是得到一个空白的保管箱作为输出
电子表格链接:https://docs.google.com/spreadsheets/d/1qaxzTWRf4_xDhfkf-_S9Zr2m-M-9blOcpFBt4JyT5do/edit#gid=0
code.gs
function doGet() {
var template = HtmlService.createTemplateFromFile('Index');
var htmlOutput = template.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
return htmlOutput;
}
html代码
< select id = "something" > < option > Choose a option < /option>
</select > < body onload = "addList()" > < /body>
<script>
function addList(){
var sheet = SpreadsheetApp.openById('1qaxzTWRf4_xDhfkf-_S9Zr2m-M-9blOcpFBt4JyT5do').getSheetByName('Sheet1');
var lastRow = sheet.getLastRow();
var myRange = sheet.getRange("C2:C" + lastRow);
var options = new Array()
var select = document.getElementById("something");
var data = myRange.getValues();
for(var i = 0; i < lastRow; i++) {
options.push(data[i]);
}
for(var i = 0; i < options.length; i++) {
var opt = options[i];
var el = document.createElement("option");
var el = document
el.text = opt;
el.value = opt;
select.appendChild(el);
}
</script >
【问题讨论】:
-
查看 htmlService 官方文档。您正在将客户端与永远无法工作的服务器代码混合在一起。文档很好地解释了如何做到这一点(从客户端调用服务器函数,或将数据作为模板的一部分)
标签: html drop-down-menu google-apps-script google-sheets html-select