![](/img/trans.png)
[英]How to implement the makeApiCall() method after migrating Google Sheets API v3 to v4 with Oauth Authorization in Javascript
[英]How to Pass a Query String to Google Sheets API v4 in Javascript
在以前的版本中我曾經做(簡化):
var queryString = encodeURIComponent('SELECT A,B,D,C WHERE D=1');
var query = new google.visualization.Query(
'https://docs.google.com/spreadsheets/d/1*SPREADSHEETID*/gviz/tq?gid=1013479342&headers=1&tqx=responseHandler:handleQueryResponse' + '&access_token=' + encodeURIComponent(gapi.auth.getToken().access_token));
query.send(handleQueryResponse);
function handleQueryResponse(response) {
var dataTable = response.getDataTable();
}
現在,要利用在 v3 中不起作用的 Google Sheets API v4 (gapi.client.sheets.spreadsheets.values.get)。 我願意:
var params = {
valueRenderOption: "UNFORMATTED_VALUE",
spreadsheetId: '*YOURSPREADSHEETID',
range: 'Sheet1!A:D',
var request = gapi.client.sheets.spreadsheets.values.get(params);
request.then(function(response) {
var values = response.result.values.map(function(e) {return [e[0], e[1], e[3], e[2]]});
var w = new google.visualization.ChartWrapper({dataTable: values,
query: "select * where D = 1"}); // THIS DOESN'T WORK
var dataTable = w.getDataTable();
我想我可以在圖表包裝器屬性中添加“查詢:“select * where D = 1””,以避免對數組中的每個元素進行排序和遍歷,或者使用額外的控件包裝器。
我會把這個留在這里。 經過進一步研究,Google Sheets API v4 仍然不支持簡單過濾。
谷歌的一位開發人員認為過濾應該是成熟數據庫的專有功能,而谷歌表不是一個,所以我懷疑他們是否會從 v3 中恢復該功能。
如果您需要過濾,您有 3 個選項:
我選擇使用第三種方法。 由於我正在使用 Google Visualization API,因此我所要做的就是在繪制數據視圖之前在數據視圖上應用過濾器。
var view = new google.visualization.DataView(dataTable);
view.setRows(dataTable.getFilteredRows([{column: 4, value: 1}]));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.