【发布时间】:2018-11-27 18:59:47
【问题描述】:
以前,我会使用 Google Visualization API 查询 Google 表格。由于身份验证问题,我一直在努力将我的 Google Chart 转换为使用 Google Apps Script。如何使用 Google Apps 脚本执行 GROUP BY 查询以发送到我的 Google Chart?
旧方式(Google 可视化 API)
function getCurrentData() {
URL = 'https://docs.google.com/spreadsheets/d/SHEET_ID/gviz/tq?gid=2017811003&headers=1';
var query = new google.visualization.Query(URL);
var queryString = 'SELECT A, B, C GROUP BY A, B';
query.setQuery(queryString);
query.send(drawChartFunct);
}
新方法(Google Apps 脚本)
function getCurrentData() {
var ssID = "SHEET_ID",
sheet = SpreadsheetApp.openById(ssID).getSheets()[2],
data = sheet.getRange("A1:C13").getValues()
??Query_Code??
return data;
}
【问题讨论】:
-
你走运了!您仍然可以使用 Google Apps 脚本中的可视化 API。 I wrote a wrapper for it as answer to a previous question。享受吧!
-
@Dimu Designs - 感谢您分享脚本。一切正常,但由于某种原因,我得到一些标题值的“null”。
-
例如
var result = Utils.gvizQuery(ss.getId(), "SELECT A, B, C, D, E", 0, 0);将返回[[null, null, null, null, null], [Date(2017,4,1), 120145, 28750, 12555, 161450],...]标头未正确捕获。 -
+Clarkus978 Google 工作表行从 1 开始(在大多数与软件编程相关的情况下,它们不是零索引)。所以试试这个:
var result = Utils.gvizQuery(ss.getId(), "SELECT A, B, C, D, E", 0, 1);注意:你会得到一个对象数组,其中每个对象都有属性,其键是标题。
标签: javascript google-apps-script google-sheets