使用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
}
答案 0 :(得分:1)
您的函数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;
};
答案 1 :(得分:0)
这是我测试过并为我工作的解决方案。
仅使用一个功能。
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)
必须传递一个字符串,该字符串是您要检索的表单元格。
多次使用相同的函数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>
如果您想通过仅运行一次函数一次获取所有数据,则需要创建一个数组,并将该数组返回给scriptlet。一旦将数据检索到scriptlet中,就可以访问数据接收数据的变量。