【问题标题】:Dynamic google spreadsheet data to HTML动态谷歌电子表格数据到 HTML
【发布时间】:2013-02-06 01:50:16
【问题描述】:

在将电子表格生成 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>

【问题讨论】:

  • 您遇到什么错误?我用不同的电子表格和工作表名称使用了相同的代码,它工作正常并且显示 html 表格没有任何问题。

标签: html templates google-apps-script


【解决方案1】:

只是我没有放入 cmets 的建议,因为它需要一些高级格式...

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

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

为了让事情更清楚一点,这里有 2 个屏幕截图来说明:

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

【讨论】:

  • 感谢你们两位的意见。文件名不是问题。我实际上没有收到任何错误,它似乎在运行,但没有显示任何内容。我也尝试了第二种方法,但它不喜欢教程中显示的 spreadsheet.show 方法的语法。
【解决方案2】:

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

function doGet() {
var t = HtmlService.createTemplateFromFile('myTemplate');
var htmlOutput =  t.evaluate();
var doc = SpreadsheetApp.getActive();
doc.show(htmlOutput);
}

【讨论】:

  • 你应该提到你试图从电子表格中显示这个 UI... 以 do get 开头的函数通常旨在用作独立应用程序或站点页面,这就是为什么没有人可以给出适当的答案。你应该阅读documentation on that matter
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-25
  • 1970-01-01
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多