OK, es hat einige Stunden gedauert, bis ich es herausgefunden habe, und die Antwort erweist sich als einfacher als das Erstellen einer Ajax-Anfrage von Grund auf. In der Hoffnung, Stunden und Stunden für andere zu sparen, hier ist die Lösung, die für mich arbeitete.
Voraussetzung: Ich habe die Quickstart tutorial of the Google Sheets API verwendet, um aus einer Tabelle zu lesen, das ist ziemlich komplex, aber funktionierte gut für mich.
Nach dem Tutorial ich, ein paar Dinge zu ändern, benötigen allerdings
1, die
private static final List<String> SCOPES =
Arrays.asList(SheetsScopes.SPREADSHEETS_READONLY);
zu
private static final List<String> SCOPES =
Arrays.asList(SheetsScopes.SPREADSHEETS);
aus offensichtlichen Gründen
Linie ändern (wie wir die schreiben wollen Tabelle, nicht nur lesen Sie es
2, löschen Sie die gespeicherten Anmeldeinformationen, die in yo gespeichert sind ur Benutzerverzeichnis in einem Ordner /.credentials/
Noch eine Anmerkung genannt: scheint es eine Methode
spreadsheets.values.update()
wird genannt, aber ich konnte nicht, dass die Arbeit bekommen, da es einen valueInputOption
Parameter benötigt werden Set, und Stunden der Suche erwies sich nicht genug, um zu finden, wo man es einstellen kann.
Also ich schließlich mit einer Methode namens
spreadsheets.values.batchUpdate()
Hier ist der Code vollständig Methode, die den Trick "Hello World!"
des Schreibens für mich in eine Tabellenzelle tat schließlich (wie für Importe, ich das gleiche verwendet, wie in den Quickstart-Tutorial oben):
void WriteExample() throws IOException {
Sheets service = getSheetsService();
List<Request> requests = new ArrayList<>();
List<CellData> values = new ArrayList<>();
values.add(new CellData()
.setUserEnteredValue(new ExtendedValue()
.setStringValue("Hello World!")));
requests.add(new Request()
.setUpdateCells(new UpdateCellsRequest()
.setStart(new GridCoordinate()
.setSheetId(0)
.setRowIndex(0)
.setColumnIndex(0))
.setRows(Arrays.asList(
new RowData().setValues(values)))
.setFields("userEnteredValue,userEnteredFormat.backgroundColor")));
BatchUpdateSpreadsheetRequest batchUpdateRequest = new BatchUpdateSpreadsheetRequest()
.setRequests(requests);
service.spreadsheets().batchUpdate(spreadsheetId, batchUpdateRequest)
.execute();
}
die SheetId ist die ID des Arbeitsblatt Sie schreiben (es immer 0 für das erste Arbeitsblatt in einem bestimmten spreadheet ist, und Sie können es von der URL für andere erhalten: es ist der Teil nach #gid=
Wenn Sie in weitere Komplexitäten wie Formatierung oder Verwendung von Formeln gehen möchten, können Sie in diesem Fall die Java example provided here verwenden.
Hoffe, dass es hilft, Zsolt
[Erstes Ergebnis] (https://developers.google.com/google-apps/spreadsheets/) Ich habe anscheinend Informationen zum Ausschreiben von Zellen. – CodeChimp
Entdecken Sie einfach die API/Java DOCS. Sie können vielleicht herausfinden, – JavaHopper
CodeChimp, Sie verknüpfen mit Legacy-Code. Ich würde mich für ein funktionierendes Beispiel mit der aktuellen, aktuellen Version interessieren. Vielen Dank –