2016-08-08 54 views
1

Ich versuche, Datenüberprüfung zu implementieren, wo die Regel eine der Bereiche mit Google Tabellen API ist.Datenüberprüfung mit einer der Bereichsregel in Google Tabellen API

In Blatt1 habe ich eine Master-Liste, wo eine Spalte in einem der Werte sein muss. Die möglichen Dropdown-Werte befinden sich in einem separaten Dropdown-Menü.

Was ist der Fehler in meinem bedingten Wert für 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() 

Allerdings stieß ich in HTTP-Fehler. Ich konnte es zum Laufen bringen, wenn ich eine von Liste anstelle von one_of_range wähle. Aber ich bevorzuge es, one_of_range zu verwenden, damit ich die möglichen Werte in derselben Tabelle beibehalten kann.

httperror 400 bei der Anforderung von https://sheets.googleapis.com/v4/spreadsheets/id:batchUpdate?alt=json zurück "Ungültige Anfragen [1] .setDataValidation: Ungültige ConditionValue.userEnteredValue: Drop-Down-A1: B2">

+0

[Fehler] (https://developers.google.com/drive/v3/web/handle-errors#400_bad_request) bedeutet, dass ein erforderliches Feld oder Parameter nicht angegeben wurde. Stellen Sie sicher, dass der angegebene Wert gültig ist oder die Kombination der bereitgestellten Felder gültig ist. Dies kann auch sein, weil die [Anfrage wurde falsch formatiert] (http://stackoverflow.com/questions/19671317/400-bad-request-http-error-code-bedeutend). Mit anderen Worten, der Datenstrom, der vom Client an den Server gesendet wurde, folgte nicht den Regeln. Überprüfen Sie diese [link] (http://stackoverflow.com/questions/37893515/google-spreadsheet-api-400-error-bad-request-unable-to-parse-range). – abielita

+0

Ja, ich denke, der Fehler kommt von der Kombination der Regelbedingungsart und -werte. Ich habe den Code in "type" geändert: "ONE_OF_LIST", "Werte": [ {"userEnteredValue": "A1: B2" } ]. Und es funktioniert. Aber ich möchte immer noch herausfinden, was die richtige Kombination für one_of_range als Typ ist. –

+0

Funktioniert es, wenn Sie dem Blattnamen ein '=' voranstellen, z. B. '" = dropdown! A1: B2 "'? –

Antwort

1

Als Sam Berlin vorgeschlagen, die Lösung hinzuzufügen, ist '=' in der Angebot.

"= dropdown! A1: B2" funktioniert mit einer Datenregel für die Datenüberprüfung.