我正在尝试从Google电子表格中检索数据,但当我尝试将data
对象添加到我的htmlTemplate
对象时,我收到错误
'对象不允许添加或更改属性'
我的代码非常简单:
function showDialog() {
var htmlTemplate = HtmlService.createHtmlOutputFromFile('index');
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getDataRange();
var values = range.getValues(); //get the spreadsheet data
htmlTemplate.data = values; // error here
...
}
有人能告诉我这有什么问题吗?
答案 0 :(得分:5)
而不是createHtmlOutputFromFile(filename)使用createTemplateFromFile(filename)
上面因为第一个返回一个不允许添加属性的HtmlOutput对象,而第二个返回一个允许添加属性的HtmalTemplate。
答案 1 :(得分:3)
一旦您已经创建了htmlOutput,就无法添加属性,而是应该在模板中填充属性,然后评估该模板以便消耗属性[如果您正在消费],然后是最终的htmlOutput生产。
就代码而言:
function showDialog() {
//Create a template
var htmlTemplate = HtmlService.createTemplateFromFile('index');
//Fetch the data
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getDataRange().getValues();
//Plug in those data in template
htmlTemplate.data = values;
//Finally evaluate the template, to produce the actually html from the template
var htmlOutput = htmlTemplate.evaluate();
//Return [if required]
return htmlOutput;
}