非常简单的Google-apps脚本会导致语法错误

时间:2017-04-13 14:19:11

标签: google-apps-script syntax-error

我有一个Google App的集合。我作为独立应用程序运行的脚本,通常嵌入到Google协作平台中。昨天我复制了我的一个正常运行的脚本并进行了修改,因为我过去已经做了很多次但是现在新脚本没有运行,它失败并出现语法错误。在没有解决方案的情况下盯着这个非常简单的脚本几个小时我认为这可能是谷歌的问题,或者我的域(公司域)中的一些问题。

function doGet() {
   var t = HtmlService.createTemplateFromFile('index');  
   var ss = SpreadsheetApp.openById('sheet_ID');
   var lrN = ss.getSheetByName('NCMR').getLastRow();

t.statArray = ss.getSheetByName('NCMR').getRange('Z3:Z'+lrN+'').getValues();

return t.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
当我尝试运行时,

从执行记录中剪断:

[17-04-13 06:39:26:322 PDT] Sheet.getRange([Z3:Z23]) [0.072 seconds]
[17-04-13 06:39:26:381 PDT] Range.getValues() [0.058 seconds]
[17-04-13 06:39:26:382 PDT] Function.apply([[]]) [0 seconds]
[17-04-13 06:39:26:389 PDT] Execution failed: SyntaxError: Syntax error. (line 8, file "Code") [0.254 seconds total runtime]

调试器出错:

 We're sorry, a server error occurred. Please wait a bit and try again.

然后它在调试器的左侧窗格中有以下内容:

<Unknown file>null [0]
Code : doGet [8]

非常感谢任何帮助或见解。如果这是一个放置和/或已经得到回答,请道歉。

编辑添加html文件:

的index.html

<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<base target="_top">
</head>
<body>
<center>
<table>
<tr><td><b> Id</b></td></tr>
<?= for (var i = 0; i < statArray.length; i++) { ?>
  <?= for (var j = 0; j < statArray[i].length; j++) { ?>
    <tr><td><?= statArray[i] ?></td>
  <?= } ?>
    </tr>
<?= } ?>
</table>
</center>
</body>
</html>

2 个答案:

答案 0 :(得分:2)

供参考:问题的作者找出了问题/语法错误

错误的原因是html中使用的scriptlet中的语法错误,即修改:

<?= for (var i = 0; i < statArray.length; i++) { ?>

到标准的scriptlet标记

<? for (var i = 0; i < statArray.length; i++) { ?>

Html代码应如下所示:

<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<base target="_top">
</head>
<body>
<center>
<table>
<tr><td><b> Id</b></td></tr>
<? for (var i = 0; i < statArray.length; i++) { ?>
  <? for (var j = 0; j < statArray[i].length; j++) { ?>
    <tr><td><?= statArray[i] ?></td>
  <? } ?>
    </tr>
<? } ?>
</table>
</center>
</body>
</html> 

答案 1 :(得分:0)

您是否尝试过使用index.html

&#13;
&#13;
Setup Internet Explorer as Default Browser
&#13;
&#13;
&#13;