Невозможно удалить условное форматирование до добавления нового форматирования - PullRequest
0 голосов
/ 08 октября 2018

Чтобы не добавлять одно и то же правило снова и снова, я сначала пытаюсь очистить любое условное форматирование для столбца, с которым я работаю (т. Е. Индекс 6).Но когда я делаю это, я получаю сообщение об ошибке:

Invalid requests[0].deleteConditionalFormatRule: No conditional format on sheet: [THE_SHEET_ID] at index: 6

о том, что на этом листе нет условного форматирования (что неверно).

Соответствующий фрагмент моего скрипта Appscode:

  ...
  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, это ответ JSON в APIпроводник (с некоторыми отредактированными значениями):

{
 "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
       }
      }
     }
    }
   ]
  }
 ]
}

Относительно отправляемого JSON ... это в скрипте Google Apps, поэтому здесь нет журнала консоли.Существует «Регистратор», но не совсем уверенный, что еще вам нужно из запроса (он находится в открытом тексте выше в «clearRedWarning» var (то есть, как сформулирован запрос).

1 Ответ

0 голосов
/ 08 октября 2018

index

Начинающийся с нуля индекс удаляемого правила.

Это НЕ индекс столбца.Это указатель правила.0 будет правилом наивысшего приоритета.1 будет следующим наивысшим и так далее.Ваш запрос на индекс 6 действителен, только если имеется 7 правил условного форматирования.

Вы также можете попробовать выполнить оба запроса по отдельности.Независимо от того, произошел ли первый запрос с ошибками (если в 0 нет правила), вы можете выполнить второй запрос, используя finally.

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...