我正在寻找一种以编程方式填充电子表格的方式,该电子表格基于登录用户过滤来自另一电子表格的数据。谷歌电子表格'查询'功能可以在谷歌应用程序脚本中使用吗?
我能够使用电子表格中的查询功能来做到这一点。 但是,无法找出从应用程序脚本调用查询功能的方式?
可以这样做吗?将不胜感激示例代码。 谢谢。
我正在寻找一种以编程方式填充电子表格的方式,该电子表格基于登录用户过滤来自另一电子表格的数据。谷歌电子表格'查询'功能可以在谷歌应用程序脚本中使用吗?
我能够使用电子表格中的查询功能来做到这一点。 但是,无法找出从应用程序脚本调用查询功能的方式?
可以这样做吗?将不胜感激示例代码。 谢谢。
不,没有用于查询功能的API,它允许从Google Apps脚本调用它。 (实际上,没有办法以这种方式调用任何电子表格函数。)
虽然您可以自己写一些类似的功能,但无需自己写。 2D Arrays Library包含各种“过滤器”功能,可让您检索匹配的行。
也许,通过一个公式,你可以得到比你需要的东西。
function testFormula() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[1];
var cell = sheet.getRange("A1");
cell.setFormula("=QUERY('Sheet0'!A1:B5;\"SELECT A, B\"; 0)");
}
William,感谢您的建议。我已经在通过脚本更新的单元格中使用了“查询”。但是,行为并不完全是我需要的。谢谢,不过。 – awsamar
我不知道是否有上的限制......
function test() {
var req = query("=QUERY(shopT!B2:E; \"select min(E) where (B=3 or B=4 and D=2) group by C, D\")");
Logger.log(req);
}
function query(request) {
var sheet = sp.insertSheet();
var r = sheet.getRange(1, 1).setFormula(request);
var reply = sheet.getDataRange().getValues();
sp.deleteSheet(sheet);
return reply;
}
这听起来像是一件应该做的工作。谢谢! – awsamar
Mogsdad,Arrays Library有用,但仍不如查询功能有效。我正在尝试使用可视化/图表API来构建用户仪表板。为了个性化仪表板,我需要能够根据登录用户过滤电子表格中的数据。但是,过滤器需要比较多列,这在查询函数'... where col5 =“&cell1&”或col6 =“&cell2&”中很容易。 – awsamar