0

将电子表格生成到 HTML 表格时出现问题。在此之后: HTML 服务-应用程序脚本。我不清楚如何定义变量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>
4

2 回答 2

0

只是我没有发表评论的建议,因为它需要一些高级格式......

您在保存为的示例中显示 html 模板,您'myTemplate.html'是用扩展名命名它还是显示 html 扩展名,因为它出现在屏幕上?

我注意到,如果 html 文件被命名myTemplate.html或者只是myTemplate两个文件在脚本编辑器界面中以相同的方式显示,但它们绝对是不同的文件。这可能是错误的来源。

为了让事情更清楚一点,这里有 2 个屏幕截图来说明: 在此处输入图像描述

在此处输入图像描述

如您所见,两个文件在左栏中显示相同,尽管它们的名称不同。我个人不会为 html 文件添加扩展名,因为环境会自动识别文件类型。

于 2013-02-05T09:41:54.537 回答
0

我能够让这段代码工作。希望这对其他人有所帮助:(请注意,不需要返回。)

function doGet() {
var t = HtmlService.createTemplateFromFile('myTemplate');
var htmlOutput =  t.evaluate();
var doc = SpreadsheetApp.getActive();
doc.show(htmlOutput);
}
于 2013-02-05T17:50:16.493 回答