我已经在Google Apps脚本上创建了一个项目,并在其上有教程脚本,但它无法正常工作。基本上我希望HTML能够从Google电子表格上的数据范围打印数据。
我的.gs文件的代码是:
function doGet() {
return HtmlService.createHtmlOutputFromFile('Main Page');
}
function getData() {
return SpreadsheetApp.openById('0AtD2IyQN1tyGdHBiLWExb3NoSHZ2RlAzNTBrS1dQLXc').getRangeByName('dataRange').getValues();
}
我的html代码是:
<html>
<? var data = getData(); ?>
</html>
我对Google Apps脚本应用程序还不熟悉,并多次查看过此代码。我创建的应用程序似乎根本不起作用。任何人都可以为我提供解决方案或解释为什么这不起作用吗?
答案 0 :(得分:1)
我担心你的代码中出现了一些问题:
return HtmlService.createTemplateFromFile('Main Page').evaluate();
来获取带代码例如,字符串正在运行
function getData() {
var data = SpreadsheetApp.openById('0AtD2IyQN1tyGdHBiLWExb3NoSHZ2RlAzNTBrS1dQLXc').getRange('testRange').getValues();
return data.toString().replace(/,/g,' | ');
}
3:html中的语法错误,请尝试这样:
<html>
<?= getData(); ?>
</html>
或者像这样,如果数据是一个简单的数组,新行上的每个单元格:
(代码使用return data.toString().split(',');
)
<? var data = getData();
for (var i = 0; i < data.length; ++i) { ?>
<b><?= data[i] ?></b><BR>
<? } ?>
如果您将数据保存为 2维数组,或在表中,这是一个完整的示例:
代码:
function doGet() {
return HtmlService.createTemplateFromFile('Main Page').evaluate();
}
function getData() {
var data = SpreadsheetApp.openById('0AtD2IyQN1tyGdHBiLWExb3NoSHZ2RlAzNTBrS1dQLXc').getRange('dataRange').getValues();
return data;
}
HTML:
<table border="5" bordercolor="FFCC00" style="background-color:#dddddd" width="400" cellpadding="5" cellspacing="3">
<? var data = getData();
for (var i = 0; i < data.length; ++i) { ?>
<tr>
<? for (n = 0; n< data[0].length; ++n) { ?>
<td><?= data[i][n] ?></td>
<? } }?>
</tr>
</table>
我认为这就是全部...我不知道你的范围内有什么展示所以我不能再提供更多的提示了......