簡體   English   中英

如何使用 JavaScript 將 Google 電子表格數據拉入 Google Apps 腳本中的 HTML

[英]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 服務器上呈現的,因此您必須使用另一種語法。

但是有可能做到,而且很簡單,有三種方法:

  • 從 HTML 模板調用 Apps 腳本函數
  • 直接從 HTML 模板調用 Apps Script API
  • 將變量從 Apps 腳本推送到 HTML 模板

我將在這里展示你正在嘗試的一個例子,它是第二種選擇:基本上你只需要改變:

<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();
}

在這里,您將找到解釋這一點的三種方法:

https://developers.google.com/apps-script/guides/html/templates#calling_apps_script_functions_from_a_template

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM