Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 无法在添加新格式之前删除条件格式_Google Apps Script_Google Sheets Api_Gs Conditional Formatting - Fatal编程技术网

Google apps script 无法在添加新格式之前删除条件格式

Google apps script 无法在添加新格式之前删除条件格式,google-apps-script,google-sheets-api,gs-conditional-formatting,Google Apps Script,Google Sheets Api,Gs Conditional Formatting,为了确保我不会一次又一次地添加相同的规则,我尝试首先清除正在处理的列(即索引6)上的任何条件格式。但当我这样做的时候,我不断地得到错误: Invalid requests[0].deleteConditionalFormatRule: No conditional format on sheet: [THE_SHEET_ID] at index: 6 表示该工作表上没有条件格式(这是不正确的) 我的应用程序脚本代码的相关片段: ... var redWarning = Sheets.n

为了确保我不会一次又一次地添加相同的规则,我尝试首先清除正在处理的列(即索引6)上的任何条件格式。但当我这样做的时候,我不断地得到错误:

Invalid requests[0].deleteConditionalFormatRule: No conditional format on sheet: [THE_SHEET_ID] at index: 6
表示该工作表上没有条件格式(这是不正确的)

我的应用程序脚本代码的相关片段:

  ...
  var redWarning = Sheets.newRequest();
  var redWarningRequest = Sheets.newAddConditionalFormatRuleRequest();
  redWarningRequest.rule = redWarningRule;
  redWarningRequest.index = 6;
  redWarning.addConditionalFormatRule = redWarningRequest;

  var clearRedWarning = Sheets.newRequest();
  var clearRedWarningRequest = Sheets.newDeleteConditionalFormatRuleRequest();
  clearRedWarningRequest.sheetId = sheetID;
  clearRedWarningRequest.index = 6;
  clearRedWarning.deleteConditionalFormatRule = clearRedWarningRequest;

  // Batch send requests
  var requests = [clearRedWarning, redWarning];
  var batchUpdate = Sheets.newBatchUpdateSpreadsheetRequest();
  batchUpdate.requests = requests;
  return Sheets.Spreadsheets.batchUpdate( batchUpdate, spreadsheetId );
如果我不包括
clearRedWarning
请求,一切都可以正常工作,但这显然不会清除现有的条件格式

我错过了什么?此外,是否有某种方式可以只有条件地添加格式,即仅在格式不存在时添加格式

*编辑 根据tehhowch的请求,这是API资源管理器中的JSON响应(一些值已编辑):

关于正在发送的JSON。。。这是在谷歌应用程序脚本中,所以这里不存在控制台日志。有一个“记录器”,但并不确定您还需要从请求中获得什么(在上面的“clearRedWarning”var(即请求是如何制定的)中有明文)

索引

要删除的规则的从零开始的索引

它不是列索引。它是规则的索引。
0
将是最高优先级规则。
1
将是次高优先级规则,依此类推。只有存在7个条件格式规则时,您对索引
6
的请求才有效

您也可以尝试分别发出这两个请求。无论第一个请求是否出错(如果
0
中没有规则),您都可以使用
finally
发出第二个请求

参考资料:
索引

要删除的规则的从零开始的索引

它不是列索引。它是规则的索引。
0
将是最高优先级规则。
1
将是次高优先级规则,依此类推。只有存在7个条件格式规则时,您对索引
6
的请求才有效

您也可以尝试分别发出这两个请求。无论第一个请求是否出错(如果
0
中没有规则),您都可以使用
finally
发出第二个请求

参考资料:

那么,在执行此操作之前,适当的文件显示了什么?它显示了条件格式。就像我说的,它在那里…所以我不明白批处理更新为什么会说它不在那里?另外,如果索引上没有任何格式,它会抛出此错误吗?在这种情况下,我将如何执行仅应用于e如果没有格式?sheetId对于每个
电子表格ID
,都是唯一的,因此在相关的JSON摘要中包含
sheetId
,将有助于我们确定您在删除请求中是否引用了不正确的表格。嗯,有趣的@I'-'I,至少删除了错误:)但是,现在根本没有条件格式。。。如何获取特定工作表的当前条件格式?有了它,我可能只需要做一个IF语句,并且只在necessary@tehhowch我理解。但是,sheetId作为变量传递给执行条件格式设置的函数,因此它不可能不正确,因为添加条件格式可以很好地工作。这个问题不可能是一个sheed ID的“打字错误”。然而,I'-'I指出的索引实际上可能是某种东西。我会留意的。再次感谢你们所有的患者(和帮助!),GAS我是新来的:)好吧,在您这样做之前,文件的相应显示是什么?它显示了条件格式。就像我说的,它就在那里。。。所以我不明白为什么批量更新说不是?另外,如果索引上没有任何格式,它会抛出这个错误吗?在这种情况下,我将如何执行条件if语句,该语句仅在没有格式时应用格式?sheetId对于每个
电子表格ID
,都是唯一的,因此在相关的JSON摘要中包含
sheetId
将帮助我们确定您在删除请求中是否引用了不正确的表格。嗯,有趣的@I'-'I,至少删除了错误:)但是,现在根本没有条件格式。。。如何获取特定工作表的当前条件格式?有了它,我可能只需要做一个IF语句,并且只在necessary@tehhowch我理解。但是,sheetId作为变量传递给执行条件格式设置的函数,因此它不可能不正确,因为添加条件格式可以很好地工作。这个问题不可能是一个sheed ID的“打字错误”。然而,I'-'I指出的索引实际上可能是某种东西。我会留意的。再次感谢你们所有的病人(和帮助!),我是新来的:)
{
 "sheets": [
  {
   "properties": {
    "sheetId": [REDACTED],
    "title": "[REDACTED]"
   },
   "conditionalFormats": [
    {
     "ranges": [
      {
       "sheetId": [REDACTED],
       "startRowIndex": 1,
       "endRowIndex": 1000,
       "startColumnIndex": 6,
       "endColumnIndex": 7
      }
     ],
     "booleanRule": {
      "condition": {
       "type": "TEXT_CONTAINS",
       "values": [
        {
         "userEnteredValue": "yes"
        }
       ]
      },
      "format": {
       "backgroundColor": {
        "red": 1,
        "green": 0.8,
        "blue": 0.8
       },
       "textFormat": {
        "foregroundColor": {
         "red": 1,
         "green": 0.2,
         "blue": 0.2
        },
        "bold": true
       }
      }
     }
    }
   ]
  }
 ]
}