2016-08-08 6 views
1

Я пытаюсь выполнить проверку данных, когда это правило является одним из диапазонов с помощью API Google Таблиц.Проверка данных с помощью одного из правил диапазона в Google Таблицах API

В sheet1 у меня есть главный список, в котором один столбец должен находиться в одном из значений. Возможные значения выпадающего списка находятся в отдельном листе, который называется выпадающим списком.

Какая ошибка в моем условном значении для one_of_range?

dropdown_action = { 
'setDataValidation':{ 
    'range':{ 

     'startRowIndex':1, 
     'startColumnIndex':4, 
     'endColumnIndex':5 
    }, 
    'rule':{ 
     'condition':{ 
      'type':'ONE_OF_RANGE', 
      'values': [ 
       { "userEnteredValue" : "dropdown!A1:B2" 
       } 
      ], 
     }, 
     'inputMessage' : 'Choose one from dropdown', 
     'strict':True, 
     'showCustomUi': True 
    } 

} 
} 

request = [dropdown_action] 
batchUpdateRequest = {'requests': request} 
SHEETS.spreadsheets().batchUpdate(spreadsheetId = id, 
          body = batchUpdateRequest).execute() 

Однако, я столкнулся с ошибкой http. Мне удалось заставить его работать, если я выбираю один из них вместо one_of_range. Но я предпочитаю использовать one_of_range, чтобы поддерживать возможные значения в одной и той же таблице.

HttpError 400 при запросе https://sheets.googleapis.com/v4/spreadsheets/id:batchUpdate?alt=json возвращается "Недействительные запросы [1] .setDataValidation: Invalid ConditionValue.userEnteredValue: выпадающий A1: B2">

+0

[Ошибка] (https://developers.google.com/drive/v3/web/handle-errors#400_bad_request) означает, что обязательное поле или параметр не были предоставлены. Убедитесь, что введенное значение является допустимым или комбинация предоставленных полей действительна. Это может быть также связано с тем, что [запрос был искажен] (http://stackoverflow.com/questions/19671317/400-bad-request-http-error-code-meaning). Другими словами, поток данных, отправленный клиентом на сервер, не соответствовал правилам. Проверьте это [ссылка] (http://stackoverflow.com/questions/37893515/google-spreadsheet-api-400-error-bad-request-unable-to-parse-range). – abielita

+0

Да, я думаю, что ошибка исходит из комбинации типа правила и значений. Я изменил код на 'type': 'ONE_OF_LIST', 'values': [ {"userEnteredValue": "A1: B2" } ]. И это работает. Но мне все же хотелось бы выяснить, какая правильная комбинация для one_of_range как типа. –

+0

Работает ли это, если вы положили '=' перед именем листа, например '' = dropdown! A1: B2 "'? –

ответ

1

Как Сэм Берлин предложил, решение добавить '=' в ассортимент.

«= выпадающий! A1: B2» будет работать с правилом проверки данных one_in_range.