位于Google工作表中的单元格下拉列表



嗨,我正在尝试使用HTML和Google Script获取下拉列表。这些选项应该取自谷歌电子表格。我的代码导致错误:;出现错误!ReferenceError:未定义文档"我应该改进什么?怎么做?抱歉代码太乱了。我不是程序员。

code.gs

function getDropDownContent() {
var sheet = SpreadsheetApp.openById('XYZ').getSheetByName('MAG');
var lastRow = sheet.getLastRow();
var myRange = sheet.getRange("J2:J" + lastRow);
var options = new Array()
var select = document.getElementById("NUMREJ");
var data = myRange.getValues();
for(var i = 0; i < lastRow; i++) {
options.push(data[i]);
}
return options;
};

HTML代码

<html>
<head>
<base target="_top">
<script>
function addList() {
console.log('addList ran!');

google.script.run
.withFailureHandler(onFailure)
.withSuccessHandler(injectMyContent)
.getDropDownContent();
};

window.injectMyContent = function(argReturnedData) {
for(var i = 0; i < argReturnedData.length; i++) {
var opt = argReturnedData[i];
var el = document.createElement("option");
var el = document
el.text = opt;
el.value = opt;
select.appendChild(el);
};
};

window.onFailure = function(err) {
alert('There was an error! ' + err.message);
};



</script>
</head>
<body onload = "addList()">
<select id="NUMREJ">
< option > Choose a option < /option>
</select>
</body>
</html>

您的getElementById((仅为客户端:

您没有权限访问脚本编辑器中的服务器端dom。

function getDropDownContent() {
var sheet = SpreadsheetApp.openById('XYZ').getSheetByName('MAG');// server side only except in scriptlets
var lastRow = sheet.getLastRow();
var myRange = sheet.getRange("J2:J" + lastRow);
var options = new Array()
var select = document.getElementById("NUMREJ");//client side code only
var data = myRange.getValues();
for(var i = 0; i < lastRow; i++) {
options.push(data[i]);
}
return options;
};

您可以使用模板化html中的scriptlet来实现这一点。

最新更新