![](/img/trans.png)
[英]Google Apps Script: how to use data in a spreadsheet to query a external database?
[英]How to use JavaScript to pull Google Spreadsheet data into HTML within Google Apps Script
我正在谷歌表格中制作一個腳本,它將根據表格中的數據彈出一個帶有字段的表單,然后在提交表單時創建一個 email 草稿。
我正在使用 Google Apps 腳本生成 HTML 表單。 表單字段需要從工作表中的數據生成(例如,帶有來自工作表范圍內的選項的下拉菜單)。
這是我在 HTML 中放入的內容:
<p id="demo"></p>
<script>
var Sheet = SpreadsheetApp.getActiveSpreadsheet();
var Value = Sheet.getRange("E2").getValue();
document.getElementById("demo").innerHTML = Value;
</script>
...但是應該顯示字符串的表單區域是空白的。
作為參考,這是有效的:
<p id="demo"></p>
<script>
var Moment = Date();
document.getElementById("demo").innerHTML = Moment;
</script>
當我包含第二個腳本時,它成功顯示了日期字符串。
那么,SpreadsheetApp(或之后的東西)在這里不起作用的原因是什么?
我對 JS 等非常陌生,因此非常感謝您的幫助:) 謝謝!!!
第二個代碼之所以有效,是因為您在 HTML 文件中使用了純 Javascript function 文件,這兩者之間可以由您的瀏覽器執行,並且工作起來就像一個魅力。
第一個代碼不起作用,因為您正在調用應用程序腳本 function,它肯定使用 Javascript,但它不是純 Javascript。 它不能在瀏覽器上呈現為常見的 Javascript,因為 Apps Script 是在 google 服務器上呈現的,因此您必須使用另一種語法。
但是有可能做到,而且很簡單,有三種方法:
我將在這里展示你正在嘗試的一個例子,它是第二種選擇:基本上你只需要改變:
<script> var myvar =... </script>
for <? var myvar =... />
<? var myvar =... />
並且在顯示變量時使用
<?= myvar?>
從模板調用 Apps 腳本函數:
<? var value = SpreadsheetApp.openById("FILE_ID").getSheets()[0].getRange("E2").getValue(); ?>
<p><?= value ?></p>
從 appscript 渲染 html 文件時只需調用 evaluate()
function doGet(e) {
return HtmlService.createTemplateFromFile('index.html').evaluate();
}
在這里,您將找到解釋這一點的三種方法:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.