Чтобы не добавлять одно и то же правило снова и снова, я сначала пытаюсь очистить любое условное форматирование для столбца, с которым я работаю (т. Е. Индекс 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 (то есть, как сформулирован запрос).