5

我尝试结合https://developers.google.com/sheets/api/samples/conditional-formatting中的两个示例

  1. 阅读所有条件格式。
  2. 删除它们。

删除需要删除索引,但这不会在读取 API 响应中返回。我尝试假设数组中返回格式的索引是适当的,但是在操作中间遇到错误“索引处没有条件格式”,然后才全部删除。

这是我要清除的工作表的副本:https ://docs.google.com/spreadsheets/d/1Y0tsEcka-1gziimesE74IhPFqGkUO985eZNoVQ9y0BU/edit#gid=0

4

1 回答 1

3

这个解决方案怎么样?在此解决方案中,您的问题可以通过 2 次 API 请求来解决。

1. 从电子表格上的工作表中检索所有条件格式。

sheets.spreadsheets.get用于这种情况。

要求 :

GET https://sheets.googleapis.com/v4/spreadsheets/### spreadsheet ID ###?ranges=### sheet name ###&fields=sheets%2FconditionalFormats%2Franges%2FsheetId

请输入### spreadsheet ID ###### sheet name ###

回复 :

此响应检索条件格式的数量。这用于删除条件格式。

{"sheets": [{"conditionalFormats": [
  {"ranges": [{"sheetId": #####}]},
  {"ranges": [{"sheetId": #####}]}
]}]}

2. 删除所有条件格式。

sheets.spreadsheets.batchUpdate用于这种情况。

要求 :

POST https://sheets.googleapis.com/v4/spreadsheets/### spreadsheet ID ###:batchUpdate

请求正文:

这里,index表示通过上述GET方法检索到的条件格式的数量。例如,当工作表中有2个条件格式时,长度requests为2。下面的requests[0]意思sheets.conditionalFormats[0]如上图。

{"requests": [
  {"deleteConditionalFormatRule": {"sheetId": #####, "index": 0}},
  {"deleteConditionalFormatRule": {"sheetId": #####, "index": 1}}
]}

请输入### spreadsheet ID ###sheetId

笔记 :

  • 为了使用上述 API,您可以检索访问令牌。
  • 因为删除工作表上的所有条件格式是目的,所以从电子表格中检索到的信息是必要的最低限度。

参考 :

如果我误解了你的问题,我很抱歉。

于 2017-12-17T01:45:20.560 回答