![](/img/trans.png)
[英]Populate a html drop down box (<select>) with data from a google sheet
[英]Get list from a google sheet to populate a dialog box in html
我在Google表格中有一個項目列表。 我想使用該工作表中的數據來通知一個下拉列表,允許用戶從該列表中選擇一個項目。 我可以在腳本中填充列表,但無法弄清楚如何將其返回到html對話框。 這是我的.gs代碼:
function getPoList(){
var fpa = SpreadsheetApp.openById('__WORKING ID___');
var poSheet = fpa.getSheetByName('testSheet');
var poVendor = poSheet.getRange('testVendor');
var poPo = poSheet.getRange('testPo');
var poVendorList = poVendor.getValues();
var poPoList = poPo.getValues();
var poList = '';
for (var i = 0; i < poPo.getNumRows(); i++) {
poList += "<option value=" + poVendorList[i] + ": " + poPoList[i] + ">" + poVendorList[i] + ": " + poPoList[i] + "</option>";
return poList;
}
}
這是我的.html代碼:
<script type="text/javascript">
google.script.run.withSuccessHandler(onSuccess).getPoList(poList);
var div = document.createElement('div');
div.className = 'newClass';
div.innerHTML = '<select>' + poList + '</select>';
document.body.appendChild(div);
</script>
似乎您尚未為withSuccessHandler(onSuccess)
編寫函數。
應該看起來像這樣:
<script type="text/javascript">
google.script.run
.withSuccessHandler(onSuccess)
.getPoList(poList);
function onSuccess(argReturnedHTML) {
var div = document.createElement('div');
div.className = 'newClass';
div.innerHTML = '<select>' + argReturnedHTML + '</select>';
document.body.appendChild(div);
}
</script>
此外, .getValues()
返回二維數組。 我看不到您正在處理這個問題。
二維數組:
[ ['row one cell one value', 'row one cell two value'], ['row two cell one value', 'row two cell two value'] ]
要獲取內部數組的內部值,您需要使用兩個索引號:
poVendorList[i][j]
其中, i
是代表電子表格中每一行的每個內部數組的索引,而j
是該行中每個單元格的值。
poVendorList[rowIndex][cellInRowIndex]
您不需要同時使用兩個索引,但是代碼需要以某種方式首先獲取內部數組,然后從內部數組中獲取值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.