我正在尝试构建一个Google Apps脚本网络应用程序,该应用程序将从Google表格中提取数据并在浏览器的HTML页面中以行和列显示它们。
通过遵循示例等,我编写了此代码!
function doGet(){
return HtmlService
.createTemplateFromFile('Report3')
.evaluate();
}
function getData(){
var spreadsheetId = '1Z6G2PTJviFKbXg9lWfesFUrvc3NSIAC7jGvhKiDGdcY';
var rangeName = 'Payments!A:D';
var values = Sheets
.Spreadsheets
.Values
.get(spreadsheetId,rangeName)
.values;
return values;
}
Run Code Online (Sandbox Code Playgroud)
通过以下HTML模板提取位于A,B,C,D列中的数据并正确显示
<? var data = getData(); ?>
<table>
<? 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>
Run Code Online (Sandbox Code Playgroud)
与其从A,B,C,DI获取所有行和所有列,不如运行SQL查询以使用WHERE子句(如SQL)检索某些列。我了解在电子表格中起作用的= QUERY()函数在GAS内部不起作用。所以我的下一个尝试是通过使用getBatch方法来检索某些行..这就是我得到错误的地方
在这种情况下,我想排除C列,仅获取A,B和D,E引发错误的代码如下:
function getData2(){ …Run Code Online (Sandbox Code Playgroud) 我正在使用绑定到Google表格的Google脚本以编程方式生成以下查询:
=query('16 Jul - 20 Jul Responses'!A1:I31, "SELECT C WHERE D = 'Available'", 0)
Google脚本中是否可以解析该查询结果的对象表示形式?我希望能够编写如下代码:
var queryString = '=query('16 Jul - 20 Jul Responses'!A1:I31, "SELECT C WHERE D = 'Available'", 0)';
var results = new Query(queryString);
for(var i = 0; i < results.length; i++) {
var result = results[i];
// do something
}
据我所知,除非您正在使用Google Web App,否则查询对象不存在。这是真的?还是有办法实现这一想法?
google-visualization google-sheets google-apps-script google-query-language google-sheets-query