java - 使用 Java 将数据写入 Google 电子表格

标签 java google-sheets google-drive-api google-spreadsheet-api

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

谁能提供一个完整示例(包含必要的导入和所有内容),说明如何将非常简单的数据输入到 Google 电子表格中(例如,在 A1 单元格中输入“asdf”工作表 1)?

如果某处存在这样的教程,我找不到它 - 任何指针将不胜感激。

非常感谢, Solr 特

最佳答案

好吧,我花了好几个小时终于弄明白了,事实证明答案比从头开始构建 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 .

希望对你有帮助 Solr 特

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

相关文章:

java - 在 Spring Data JPA 存储库中使用泛型

java - 迭代类的映射并调用

java - Java Mission Control Flight Recorder 中没有记录 CPU 使用情况

javascript - 在谷歌表格脚本中连接两列

github - 从Google云端硬盘将图像添加到GitHub Readme.md

javascript - 将 Google 演示文稿复制到文件夹

java - 查找具有特定注释的加载类

javascript - 转置数组时出现 “This operation is not supported from a callback function” 错误

google-sheets - 计算不为空值的行数

python - 使用 gspread 创建的电子表格正在与我的组织中的所有用户共享