Я пытаюсь выполнить проверку данных, когда это правило является одним из диапазонов с помощью 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">
[Ошибка] (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
Да, я думаю, что ошибка исходит из комбинации типа правила и значений. Я изменил код на 'type': 'ONE_OF_LIST', 'values': [ {"userEnteredValue": "A1: B2" } ]. И это работает. Но мне все же хотелось бы выяснить, какая правильная комбинация для one_of_range как типа. –
Работает ли это, если вы положили '=' перед именем листа, например '' = dropdown! A1: B2 "'? –