我迷失了这一点。我正在尝试将Java与Google电子表格连接起来,尽管API的文档在检索数据方面是完整的(并且工作正常),但我无法弄清楚如何写入电子表格。

任何人都可以提供一个完整的示例(包括必要的导入内容和全部内容),以说明如何非常简单地将数据输入到Google Spreadsheet中(例如,在Sheet1的A1单元格中输入“asdf”)吗?

如果某个地方有这样的教程,我找不到它-任何指针将不胜感激。

非常感谢你,
佐尔特

最佳答案

好的,我花了好几个小时才终于弄清楚,而且答案比起从头开始构建Ajax请求要容易得多。为了节省他人的时间,这是对我有用的解决方案。

先决条件:我使用Quickstart tutorial of the Google Sheets API从表中读取数据,这很复杂,但是对我来说很好用。

在学习完本教程后,我需要修改一些内容

1,换线

private static final List<String> SCOPES =
        Arrays.asList(SheetsScopes.SPREADSHEETS_READONLY);


private static final List<String> SCOPES =
        Arrays.asList(SheetsScopes.SPREADSHEETS);

出于明显的原因(因为我们要编写表,而不仅仅是读取它。

2,删除存储在用户目录中名为/.credentials/的文件夹中的存储凭据

还有一点需要注意:似乎有一种方法叫做
spreadsheets.values.update()

但是我无法正常工作,因为它需要设置valueInputOption参数,而且数小时的搜索不足以证明可以在哪里设置它。

所以,最后,我得到了一个叫做
spreadsheets.values.batchUpdate()

这是完整的代码方法,为我完成了将"Hello World!"写入表单元格的技巧(对于导入,我使用的方法与上面的快速入门教程中的相同):
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();
    }

SheetId是您正在编写的工作表的ID(对于某个电子表格中的第一个工作表,它始终为0,您可以从其他URL上获取它:这是#gid=之后的部分)

如果您想进一步复杂化,例如格式化或使用公式,则可以-在这种情况下,使用Java example provided here

希望能帮助到你,
佐尔特

关于java - 使用Java将数据写入Google Spreadsheet,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38486286/

10-10 11:36
查看更多