创建多个数组列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建多个数组列表相关的知识,希望对你有一定的参考价值。
重新措词的目标:我正在使用Google Apps脚本创建网页。我想在页面上列出多个下拉列表。我知道如果使用<select><option>
,则可以创建一个硬编码选项列表。我想做的是从Google工作表中获取要显示在下拉菜单中的选项,这样我可以随时更新它而无需修改html代码。
问题:我成功地从工作表中创建了一个包含列A值的下拉选择时,遇到了一个问题,即Apps Script无法让我创建另一个包含Column值的下拉列表B。
这是我的工作表,其中包含姓名和饮食类型。每列包含每个下拉菜单的选项。
这是前端的外观。我想在它旁边的另一个下拉列表中包含来自B列的值(如上所示)。
这是我的剧本:
var url = "google sheets URL";
function doGet(e)
var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Staff");
var list = ws.getRange(1,1,ws.getRange("A1").getDataRegion().getLastRow(),1).getValues();
var tmp = HtmlService.createTemplateFromFile("index");
tmp.list = list.map(function(r) return r[0]; );
return tmp.evaluate();
这是我的选择列表的HTML:
<select id="app" class="browser-default">
<option disabled selected>Select a teammate!</option>
<? for(var i=0;i<list.length;i++) ?>
<option><?= list[i]; ?></option>
<? ?>
</select>
此刻它可以正常工作,但是当尝试复制它时,我可以在Google表格中获取另一列,并将其用作另一个选择列表,我得到:Referenceerror:未定义“列表”。
这是导致我得到错误的脚本。
var url = "google sheets URL";
function doGet(e)
var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Staff");
var list = ws.getRange(1,1,ws.getRange("A1").getDataRegion().getLastRow(),1).getValues();
var tmp = HtmlService.createTemplateFromFile("index");
tmp.list = list.map(function(r) return r[0]; );
return tmp.evaluate();
function doGet(f)
var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Variables");
var list2 = ws.getRange(1,1,ws.getRange("A1").getDataRegion().getLastRow(),1).getValues();
var tmp2 = HtmlService.createTemplateFromFile("index");
tmp2.list2 = list2.map(function(r) return r[0]; );
return tmp2.evaluate();
答案
这是从对话框获取多个列表的简单示例。
以上是关于创建多个数组列表的主要内容,如果未能解决你的问题,请参考以下文章