Google Apps 脚本和 HTML 服务;如何引入电子表格值以显示在我的 .html 页面上?

Google Apps Script and HTML Service; how do I bring in Spreadsheet values to display on my .html page?

使用 Google Apps 脚本和 HTML 服务如何将特定的数据单元格引入我的 index.html 页面?

基本上我的 'getdata' 函数确实可以获取我的电子表格数据,但我的 'getdata2' 需要一点帮助。我希望有人可能有想法可以让我继续前进。

我有一些代码,我认为可以帮助您了解我的期望。

index.html 关注

 <H1>Hope to get data from a spreadsheet</H1>
<div id="myDataDiv">
<? var data = getData(); ?>
<?= data       ?>

</div>
<Hr>
<div id="myDataDiv2">
<? var data2 = getData2(); ?>
<?= data2.mySingleValue       ?><br />
<?= data2.mySingleValue2       ?>
</div>

code.gs 关注

var submissioSSKey = '1Jyc2XmgQ7ffuRDpieT_DyJIUWVWi-9UUn2vAQqr_zJY';//this is an altered key
function doGet() {
      return HtmlService
      .createTemplateFromFile('index')
      .evaluate()
      .setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

function getData() {
  return SpreadsheetApp
 .openById(submissioSSKey) 
  .getActiveSheet().getRange("B3").getValue(); 
}

function getData2() {
var ss = SpreadsheetApp.openById(submissioSSKey); 
var mySingleValue = ss.getSheetByName('Sheet1').getRange('B3').getValue(); //hoping for value 1 
var mySingleValue2 = ss.getSheetByName('Sheet1').getRange('B4').getValue(); //hoping for value 2

}

这是我测试过的适用于我的解决方案。

只使用一个功能。

function getData(argWhatCell) {
  Logger.log("argWhatCell: " + argWhatCell);

  var returnValue = SpreadsheetApp.openById("My Sheet ID").getActiveSheet().getRange(argWhatCell).getValue();
  Logger.log("returnValue: " + returnValue);
  return returnValue;
}

请注意,函数 getData(argWhatCell) 必须获得传递给它的字符串,即您要检索的 sheet 单元格。 多次使用同一个函数 getData() 而不是拥有多个函数。 传递要从 HTML 中检索的单元格。您不需要 getData2() 函数。

<H1>Hope to get data from a spreadsheet</H1>
<div id="myDataDiv">
  <? var data = getData("B3"); ?>
  <?= data       ?>
</div>

<Hr>

<div id="myDataDiv2">
  <? var data2 = getData("B3"); ?>
  <?= data2       ?>

  <? var data3 = getData("B4"); ?>
  <?= data3       ?>
</div>

如果你想通过运行函数一次获取所有数据,你需要创建一个数组,然后return将数组传给scriptlet。一旦将数据检索到脚本中,就可以访问数据接收数据的变量。

您的函数 getData2() 没有返回任何值,因此没有任何内容传递给您的 HTML scriptlet 中的 data2 变量。

试试这个:

function getData2() {
 var ss = SpreadsheetApp.openById(submissioSSKey);
 var myValues = {}; 
 myValues["mySingleValue"] = ss.getSheetByName('Sheet1').getRange('B3').getValue(); //hoping for value 1 
 myValues["mySingleValue2"] = ss.getSheetByName('Sheet1').getRange('B4').getValue(); //hoping for value 2
 return myValues;
};