Google apps script 如何使用GoogleSheets(v4)API修改依赖于特定单元格的特定数据行?
我想找到一种使用GoogleAPI根据我提供的标准修改特定数据行的方法。类似于SQL的:Google apps script 如何使用GoogleSheets(v4)API修改依赖于特定单元格的特定数据行?,google-apps-script,google-sheets,web-applications,google-sheets-api,Google Apps Script,Google Sheets,Web Applications,Google Sheets Api,我想找到一种使用GoogleAPI根据我提供的标准修改特定数据行的方法。类似于SQL的: UPDATE Customers SET ContactName = 'Alfred Schmidt', City= 'Frankfurt' WHERE CustomerID = 1 我尝试过使用BatchUpdateDataFilter,但似乎无法使其正常工作。我刚刚意识到谷歌的查询语言,但这并没有更新 我有一个测试电子表格如下。我希望能够根据ID更新特定列 e、 在SQL中,类似于以下内容 UPDA
UPDATE Customers
SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
WHERE CustomerID = 1
我尝试过使用BatchUpdateDataFilter,但似乎无法使其正常工作。我刚刚意识到谷歌的查询语言,但这并没有更新
我有一个测试电子表格如下。我希望能够根据ID更新特定列
e、 在SQL中,类似于以下内容
UPDATE SET Collected = 'Yes' WHERE ID = 1
- 您希望从外部修改电子表格的值
- 您希望使用类似SQL的查询来修改值
- 您希望从外部修改值
- 在共享电子表格中,从“Sheet1”检索值
- 在本例中,脚本是您要使用的语言
UPDATE SET Collected = 'Yes' WHERE ID = 1
您的共享电子表格将用作示例电子表格。在这种情况下,对于“Sheet1”的工作表,当列“A”(ID)的值为1
时,列“L”(收集)的值修改为Yes
用法:
function doGet(e) {
var p = e.parameter;
var sheetName = "Sheet1";
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
var range = sheet.getDataRange();
var values = range.getValues();
var headers = values.splice(0, 1)[0];
var checkCol = headers.indexOf(p.checkKey);
var modifyCol = headers.indexOf(p.modifyKey);
values.forEach(function(e, i) {
if (e[checkCol] == p.checkValue) {
values[i][modifyCol] = p.modifyValue;
}
});
values.unshift(headers);
range.setValues(values);
return ContentService.createTextOutput("Done");
}
UPDATE SET Collected = 'Yes' WHERE ID = 1
- 如果只使用了
,则只有您可以访问Web应用程序。届时,请使用您的访问令牌我自己
- 就像
https://script.google.com/macros/s/#####/exec
curl -L "https://script.google.com/macros/s/###/exec?checkKey=ID&checkValue=1&modifyKey=Collected&modifyValue=Yes"
- 或者,如果您想使用您的访问令牌,请使用下面的
curl -L "https://script.google.com/macros/s/###/exec?checkKey=ID&checkValue=1&modifyKey=Collected&modifyValue=Yes&access_token=###"
1
时,列“L”(Collected)的值修改为Yes
注:
如果我误解了你的问题,并且这不是你想要的方向,我很抱歉。没有类似sql的方法来更新整个数据。如果id=行号,那么创建datafilter所需的
aRange:
应该不难。这是一个非常好的答案。令人难以置信的是,它不得不等到今天才进行第一次投票。令人难以置信的连贯性。塔奈克说,如果答案是2020年或2021年,我会毫不犹豫地盲目遵循你的大纲。让我有点难过的是,我最终不会使用它——如果你个人还在意的话,除了投票之外还留下一些东西:根据最新版本(0.7,截至评论)的文档,你在第一段中链接到了以前的版本,来自客户机的类似SQL的查询(!)现在,通过HTTP到google的表单显然可以通过绕道图表API在本地获得。谷歌甚至提供了多种语言的易于使用的包装(包括浏览器的JS)Google.visualization.Query。今天看起来好像真的很简单。祝你好运。(我很快就会知道的