2017-12-14 10 views
0

Ich bin daran interessiert, Tabellen in Google Tabellen programmgesteuert zu erstellen. Eine meiner Anforderungen ist, dass ich Entwickler-Metadaten, die mit Spalten in der Tabelle verknüpft sind, schreiben und lesen kann.Das Erstellen einer Google Tabellenkalkulation mit Metadaten mithilfe der API scheint die Metadatensätze nicht zu erstellen.

Ich habe derzeit Probleme mit der Erstellung von Entwicklermetadaten - entweder auf Tabellenkalkulationsebene oder in Verbindung mit einem bestimmten Teil des Blattes. Wenn ich die Anforderung zum Erstellen einer neuen Kalkulationstabelle senden, erhalte ich eine erfolgreiche Antwort, die das resultierende Kalkulationstabellenobjekt wie erwartet zurückgibt. Das Objekt, das von dieser Anforderung zurückgegeben wird, enthält jedoch keine Metadatenobjekte (wie in der API-Dokumentation vorgeschlagen). Das Festlegen einer expliziten Metadaten-ID für den Metadateneintrag und das anschließende Abrufen der Metadaten scheint ebenfalls nicht zu funktionieren (siehe unten).

Hier ist die JSON Körper Nutzlast ich mit der Anfrage zu senden sind (ich war, das Google-API-Explorer zuletzt mit, als auch die Anforderung, die er von meinem Code zu isolieren):

{ 
    "properties": { 
    "title": "test 6:19 with sheet metadata" 
    }, 
    "sheets": [ 
    { 
     "properties": { 
     "sheetId": 0, 
     "title": "Sheet1", 
     "index": 0, 
     "sheetType": "GRID", 
     "gridProperties": { 
      "rowCount": 2, 
      "columnCount": 2 
     } 
     }, 
     "data": [REMOVED_FOR_SPACE], 
    "developerMetadata": [ 
    { 
     "location": { 
     "spreadsheet": true, 
     "locationType": "SPREADSHEET" 
     }, 
     "metadataKey": "questionId", 
     "metadataValue": "12345", 
     "visibility": "DOCUMENT", 
     "metadataId": 12345 
    } 
    ] 
} 

Diese Anfrage erhält eine 200 und gibt ein Tabellenobjekt zurück, dem Entwicklermetadaten fehlen, wie zuvor erwähnt. Die Tabelle wird wie beschrieben erstellt und ist über die Benutzeroberfläche zugänglich.

Ich vermutete, dass die Antwort nur die Metadaten nicht enthalten, trotz der Dokumentation. Wenn jedoch eine GET-Anforderung für die Metadaten-ID oben machen, erhalte ich die folgende Antwort:

{ 
    "error": { 
    "code": 404, 
    "message": "No developer metadata with ID 12345.", 
    "status": "NOT_FOUND" 
    } 
} 

WUT DO I TUT?

Antwort

0

Ich hatte das gleiche Problem konfrontiert und ich hatte dies völlig aufgegeben. Später habe ich die API "batchUpdate" versucht, die unter Tabellenkalkulation bereitgestellt wird. Eines der "Art" -Feld unter "Anfragen" nimmt den Wert - createDeveloperMetadata. (https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/request) Es dauert das CreateDeveloperMetadataRequest -Objekt, dessen Struktur ist die gleiche wie die, die Sie beim Erstellen der Tabelle versucht haben. (https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/request#CreateDeveloperMetadataRequest) Bei der Ausführung mit einer zufälligen Ganzzahl als Metadaten-ID, bekam ich eine 200 Response. Außerdem führte es ein GET auf Entwicklermetadaten durch, es gab mir die korrekte Antwort zurück!

Hoffe, das hilft.

+0

Vielen Dank für Ihren Vorschlag! Am Ende ging ich die Sache anders an und vermied es, Sheet-Metadaten vollständig zu verwenden. Wenn ich in Zukunft Metadaten verwenden muss, ist das sehr hilfreich! –

Verwandte Themen