我正在尝试将数组对象推送到HTMLService生成的模板,以便我可以填充下拉框。
我的函数showSidebar()
在onOpen()
函数中调用。
showSideBar()
/**
* Opens a sidebar in the document containing the add-on's user interface.
*/
function showSidebar() {
var ui = HtmlService.createHtmlOutputFromFile('Sidebar')
.setTitle('Generate Reports');
SpreadsheetApp.getUi().showSidebar(ui);
}
HTML文件Sidebar.html的内容是
<div class="sidebar branding-below">
<form>
<div class="block col-contain">
<div class="block form-group">
<label for="client-dd"><b>Client Name</b></label><br />
<select id="client-dd" class="width-100">
<? var data = getUniqueCustomers();
for (var i = 0; i < data.length; i++)
{
var val = data[i];
var v = val[0]; ?>
<option value='<?!= v ?>'>
<?!=v ?>
</option>
<? } ?>
</select>
</div>
</div>
</form>
</div>
函数getUniqueCustomers()
(我知道它有效,因为我测试了它)如下
function getUniqueCustomers(){
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var rangeVals = sheet.getRange("E2:E");
var x = ArrayLib.unique(rangeVals.getValues());
return x;
}
但由于某种原因,我在侧栏中看到以下内容
有什么想法吗?
答案 0 :(得分:0)
您正在尝试使用模板化HTML - 为此您需要使用 HtmlService.createTemplateFromFile()方法而不是.createHtmlOutputFromFile()。 Full documentation here