嘿伙计们,我对编码非常陌生,我遇到了一个我无法理解的语法错误。我已经在线查看了错误以及更糟糕的情况,我已经设法让脚本在收到错误之前提前工作。我正试图从Google表格中取出行并将它们固定在地图上。
我收到的错误是在第9行,我尝试返回数组。任何意见或建议将非常感谢!谢谢你们试图提供帮助。具体做法是:
return html.evaluate().setTitle('Company Directory Map');
以下是我的代码:
function doGet(e) {
var html = HtmlService.createTemplateFromFile('DirectoryHTML');
var ss = SpreadsheetApp.getActiveSpreadsheet();
html.ss = parseDirectory(ss.getSheetByName('Directory Address & Name').getRange('A2:R').getValues());
return html.evaluate().setTitle('Company Directory Map');
}
function parseDirectory(values) {
var locations = [];
for (var i = 1; i < values.length; i++) {
locations.push({
LocationID: values[i][1],
LocationName: values[i][4],
Address: values[i][6],
AddressDetail: values[i][7],
City: values[i][8],
State: values[i][9],
Zipcode: values[i][10],
ZipcodeExtension: values[i][11],
mapURL: getMapUrl(values[i][6,8,9,10,11]),
Phone: values[i][12],
Fax: values[i][13],
EnteralPhone: values[i][14],
EnteralFax: values[i][15],
Type: values[i][16],
Notes: values[i][17]
});
}
return locations;
}
function getMapUrl(city) {
return Maps.newStaticMap().setSize(1200, 600).setCenter(41.37132419162449,-112.13662837438801).getMapUrl();
}
修改 以下是我的HTML代码供参考:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<? = for(var i = 0, i < locations.length; i++) {?>
<div>
<img src = "<? locations[i].mapUrl ?>" />
<h2><?= locations[i].LocationID ?></h2>
<!-- <h4><?= locations[i].Address ?></h4> -->
</div>
<? } ?>
</body>
</html>
答案 0 :(得分:0)
语法错误的原因是HTML代码中存在语法错误,特别是此行
<? = for(var i = 0, i < locations.length; i++) {?>
1)您正在使用打印scriptlet,但没有要打印的变量/输出。请使用标准scriptlet而不是<? ?>
2)循环的正确语法是for(var i = 0; i < locations.length; i++)
。请注意在循环中使用;
代替,
。
最后,您在ss
htmltemplate
对象的值
html.ss = parseDirectory(ss.getSheetByName('Directory Address & Name').getRange('A2:R').getValues());
但是,在HTML代码中,您使用对象locations
来运行循环。因此,像这样修改你的HTML代码
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<? var locations = ss ?>
<? for(var i = 0; i < locations.length; i++) {?>
<div>
<img src = "<?= locations[i].mapUrl ?>" />
<h2><?= locations[i].LocationID ?></h2>
<!-- <h4><?= locations[i].Address ?></h4> -->
</div>
<? } ?>
</body>
</html>