3

Ich bin vor ein Problem innerhalb Aktualisierung der bestehenden Tabelle auf Google-Laufwerk, ohne Verwendung eines Batch-Update zu aktualisieren (im Moment bin ich nicht sicher, ob es überhaupt möglich ist)Wie Google-Tabelle über Blätter API v4

ich habe bereits vorhandene Tabelle mit einigen Daten, dann rufe ich Datei von google Drive über

Drive drive = new Drive.Builder(TRANSPORT, JSON_FACTORY, credential) 
       .setApplicationName(APPLICATION_NAME) 
       .build(); 
    drive.files().list().execute().getItems() 

ich meine Datei einfach mit dem Namen übereinstimmen, und dann mag ich nur die Tabelle, in der gegründeten Datei aktualisieren.

Sheets service = new Sheets.Builder(GoogleNetHttpTransport.newTrustedTransport(), JSON_FACTORY, credential) 
         .setApplicationName(APPLICATION_NAME) 
         .build(); 
Spreadsheet spreadsheet = service.spreadsheets().get(file.getId()).execute().setSheets(new ArrayList<>()); 

Hier bekomme ich Kalkulationstabelle aus einer Datei, die mit dem Namen übereinstimmen, und dann mag ich empy Blatt setze nur dort (zum Beispiel).

Es gibt ersten Punkt, wo ich bin nicht sicher, wie es richtig „Update“, um die Kalkulationstabelle auf dem Laufwerk, weil ich nicht

service.spreadsheets().create(spreadsheet).execute(); 

verwenden kann, und ich mag nicht Batch-Update verwenden, weil ich Sie haben den Tabellenkalkulationsinhalt bereits über die Methode setSheet() festgelegt.

ich denke, es sollte mit folgenden fertig gestellt werden:

Permission permission = drive.permissions().get(file.getId(), permissionId).execute().setType("anyone"); 
drive.permissions().update(
    spreadsheet.getSpreadsheetId(), 
    permissionId, 
    permission 
).execute(); 

ich die Google-API hier war die Überprüfung: https://developers.google.com/drive/v2/reference/permissions/update und hier: https://developers.google.com/sheets/api/guides/batchupdate aber sie sind mit der Batch-Update.

Was ich bin neugierig ist, warum gibt es setSheets() -Methode, die für Updates leicht zu sein scheint, wenn ich bereits meine Blätter erstellt, aber es scheint, dass ich einfach nicht aktualisieren Tabellenkalkulation in vorhandene Datei.

Was ist auch interessant, dass jedes Mal, wenn ich die drive.perm.update verwenden, erstellt eine neue Datei (mit Tabelle, die ich aktualisieren wollte), die eigentlich nicht viel Sinn für mich macht.

Also gibt es eine Chance, einfach Datei auf Laufwerk zu aktualisieren und nur die Tabellenkalkulationsmethode zu verwenden?

+0

Gibt es einen besonderen Grund, warum Sie das Batch-Update nicht verwenden können?Ich gehe davon aus, dass Sie meinen, dass Sie ein bestimmtes Blatt innerhalb eines Google-Blattdokuments vollständig aktualisieren/ersetzen möchten. – DaImTo

+0

Ja, Sie haben Recht, ich möchte alle Blätter im Blatt Dokument ersetzen. Nun, als ich die setSheets-Methode gesehen habe, scheint es mir einfacher zu sein als eine Batch-Aktualisierung und lesbarer für zukünftige Verwendung. Glauben Sie, dass das Batch-Update der einzige Weg ist? – Radim

+0

Oder können Sie bitte angeben, wie Sie eine korrekte BatchUpdate-Anfrage mit einer Liste von Blättern erstellen (Liste Blätter). Weil ich nur herausgefunden habe, dass ich Request erstellen muss und es gibt Methode setAddSheet mit NewAddSheetReqeust. Ich habe festgestellt, dass ich alle Blätter in der Tabelle löschen kann, aber ich habe keine Methode zum Einfügen von Blättern gefunden. – Radim

Antwort

1

Diese Aussage von Jay Lee in diesen verbundenen SO post einem klaren Einblick geben:

Der Google Drive API für generische Datei/Ordner-Interaktionen zu verstehen ist. Wenn Sie Google Spreadsheet-Daten direkt ändern möchten, ist die Google Sheets API die bessere Wahl.

Des Weiteren Google-Tabelle zu aktualisieren, sollten Sie Reading & Writing Cell Values überprüfen, die die Grundlagen Sammlung der Verwendung des spreadsheets.values beschreibt. Es wurde erwähnt, dass

Wenn Sie die Formatierung oder andere Eigenschaften in einem Blatt aktualisieren müssen, müssen Sie die spreadsheets collection verwenden, die in Updating Spreadsheets beschrieben.

Weitere Informationen finden Sie unter Batch update operations und Beispiele werden gezeigt here.

+0

Ja danke, ich habe gelesen, aber wie ich oben schrieb, fand ich nicht, wie man komplexere Aktualisierung durchführt mit Sammlung von Blättern. In der Dokumentation gibt es nur einige AddSheetRequest und Beispiele mit Zellupdate. Das ist etwas, was ich vermeiden wollte, ich habe bereits Blätter erstellt und möchte nicht irgendwie über ihre Zellen iterieren. – Radim

+0

@Teyam ... können Sie bitte die Informationen zur Verfügung stellen, wie die gleiche Operation vom Restclient oder Postboten durchgeführt wird ... was sind die Details, um diese Operation durchzuführen – Priya

Verwandte Themen