使用Google表格API中的一个范围规则进行数据验证

时间:2016-08-08 20:08:11

标签: google-sheets-api

我正在尝试实施数据验证,其中规则是使用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错误。如果我选择list中的一个而不是one_of_range,我能够使它工作。但我更喜欢使用one_of_range,以便我可以在同一个电子表格中维护可能的值。

请求https://sheets.googleapis.com/v4/spreadsheets/id:batchUpdate?alt=json时的HttpError 400返回“无效请求[1] .setDataValidation:无效的ConditionValue.userEnteredValue:下拉列表!A1:B2”>

2 个答案:

答案 0 :(得分:3)

正如Sam Berlin所建议的,解决方案是在范围内添加'='。

“=下拉!A1:B2”将与one_in_range数据验证规则一起使用。

答案 1 :(得分:0)

没有什么对我有用,然后我看到了这个主题 Google Spreadsheet API setDataValidation with Regex,其中ZektorH标记为“您的表情需要转义”。