恐怕您的代码中有几处是错误的:
- 您应该使用
return HtmlService.createTemplateFromFile('Main Page').evaluate();
代码来获取 html 页面的结果
- getData 返回的值是一个数组,您应该以一种或另一种方式将其转换为 HTML 可以理解的东西……或者在 html 文件中添加一些代码来正确处理数组数据。
例如,一个字符串正在工作
function getData() {
var data = SpreadsheetApp.openById('0AtD2IyQN1tyGdHBiLWExb3NoSHZ2RlAzNTBrS1dQLXc').getRange('testRange').getValues();
return data.toString().replace(/,/g,' | ');
}
3:你的html语法错误,试试这样:
<html>
<?= getData(); ?>
</html>
或者像这样,如果 data 是一个简单的数组,则每个单元格都换行:
(在代码使用中return data.toString().split(',');
)
<? var data = getData();
for (var i = 0; i < data.length; ++i) { ?>
<b><?= data[i] ?></b><BR>
<? } ?>
或者如果您将数据保存为二维数组,则在表格中,这是一个完整的示例:
在这里测试执行
代码 :
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>
我想这就是全部...我不知道您要展示什么范围,所以我无法进一步提供更多提示...