gpt4 book ai didi

javascript - 如何在 Javascript 中将查询字符串传递给 Google Sheets API v4

转载 作者:行者123 更新时间:2023-11-30 19:37:28 24 4
gpt4 key购买 nike

在以前的版本中我曾经这样做(简化):

 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();

我想我可以在 chartwrapper 属性中添加“查询:”select * where D = 1“”,以避免排序和遍历数组中的每个元素或使用额外的 controlwrapper。

最佳答案

我会把它留在这里。经过进一步研究,Google Sheets API v4 仍然不支持简单的过滤。

Google 的一位开发人员认为过滤应该是成熟数据库的专有功能,而 google 表格不是,所以我怀疑他们是否会从 v3 中恢复该功能。

如果您需要过滤,您有 3 个选择:

  • 首先过滤您的电子表格(使用过滤后的数据制作多个工作表,然后调用已应用过滤器的范围)。
  • 返回使用支持过滤的 Google 表格 v3(见上文)。
  • 在客户端级别收到数据后对其进行过滤(是的,我知道这对性能来说是最糟糕的)。

我选择第三种方法。由于我使用的是 Google Visualization API,所以我所要做的就是在绘制之前在数据 View 上应用过滤器。

var view = new google.visualization.DataView(dataTable);
view.setRows(dataTable.getFilteredRows([{column: 4, value: 1}]));

关于javascript - 如何在 Javascript 中将查询字符串传递给 Google Sheets API v4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55787178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com