在将电子表格生成到HTML表格时遇到问题。在此之后:HTML Service- Apps scripts。我不清楚如何定义变量 htmlOutput 或如何显示/返回它。谢谢你的想法。
function doGet() {
var t = HtmlService.createTemplateFromFile('myTemplate');
var htmlOutput = t.evaluate();
return htmlOutput;
}
我的HTML模板'myTemplate.html'是:
<html>
<table>
<? var sheet = SpreadsheetApp.openById("ID").getSheetByName("Results-List");
var lastRow = sheet.getLastRow();
var myRange = sheet.getRange("A2:G"+lastRow);
var data = myRange.getValues();
for (var i = 0; i < data.length; ++i) { ?>
<tr>
<? for (var j = 0; j < data[i].length; ++j) { ?>
<td><?= data[i][j]?></td>
<? } ?>
</tr>
<? } ?>
</table>
</html>
答案 0 :(得分:0)
只是一个建议我没有发表评论,因为它需要一些高级格式化......
您正在示例中将html模板显示为'myTemplate.html'
,是否使用扩展名命名,或者是否显示html扩展名,因为它在屏幕上显示为?
我注意到如果html文件名为myTemplate.html
或只是myTemplate
,则两个文件在脚本编辑器界面中以相同的方式显示,但它们肯定是不同的文件。 可能是错误的来源。
为了使事情更清楚,这里有2个屏幕截图,说明:
正如您所看到的,两个文件在左栏中显示相同,尽管它们的名称不同。 我个人不会为html文件添加扩展名,因为环境会自动识别文件类型。
答案 1 :(得分:0)
我能够使用此代码。希望这有助于其他人:(注意 return 不需要。)
function doGet() {
var t = HtmlService.createTemplateFromFile('myTemplate');
var htmlOutput = t.evaluate();
var doc = SpreadsheetApp.getActive();
doc.show(htmlOutput);
}