当前位置: 首页 > 知识库问答 >
问题:

如何通过API v4更新google电子表格

夏飞掣
2023-03-14

我在更新google drive上的现有电子表格时遇到了一个问题,没有使用批量更新(现在我甚至不确定是否可能)

我已经有一些数据现有的电子表格,然后我检索文件从谷歌驱动器通过

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

我很容易通过名称匹配我的文件,然后我只想在创建的文件中更新电子表格。

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<>());

这里我从匹配名称的文件中获取电子表格,然后我只想把empy表放在那里(例如)。

第一点,我不确定如何正确地“更新”驱动器上的电子表格,因为我无法使用

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

我不想使用批处理更新,因为我已经通过setSheet()方法设置了电子表格内容。

我认为应以下列方式最后确定:

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

我在这里检查google API:https://developers.google.com/drive/v2/reference/permissions/update在这里:https://developers.google.com/sheets/api/guides/batchupdate但他们正在使用批处理更新。

我很好奇的是,当我已经创建了工作表时,为什么会有setSheets()方法,它似乎很容易用于更新,但我似乎无法简单地更新现有文件中的电子表格。

同样有趣的是,每次我使用这个驱动器。烫发。更新,它创建了一个新的文件(带有我想要更新的电子表格),实际上对我来说没有多大意义。

那么,是否有机会简单地更新驱动器上的文件,并使用电子表格方法?

共有1个答案

韩季
2023-03-14

Jay Lee在这篇相关SO帖子中的这一声明将给出一个清晰的见解:

GoogleDrive API用于通用文件/文件夹交互。对于直接修改Google电子表格数据,Google Sheets API将是更好的选择。

此外,要更新Google电子表格,您可能需要检查读数

如果需要更新工作表中的格式或其他属性,则需要使用“电子表格”集合,如“更新电子表格”中所述。

有关更多信息,请参阅批量更新操作,此处显示了一些示例

 类似资料:
  • 问题内容: Gdata提供了一种基于时间戳仅从Google电子表格中获取更改的单元格的方法。如何为Gdata调用创建时间戳? 即“将仅返回发布时间等于或晚于指定时间戳记的条目。” setPublishedMax()https://developers.google.com/gdata/javadoc/com/google/gdata/client/Query#setPublishedMax (co

  • 我在向现有电子表格添加新工作表(选项卡)时遇到了一个问题。 在主要问题之前,我将尝试解释为什么我需要做这样的事情,也许会有其他解决方案。我正在尝试上传带有多个工作表的电子表格。当工作表的尺寸较小时,一切都很好。但是当我使用非常大的工作表(例如两个带有40k单元格的工作表)执行“service.spreadsheets(). create(电子表格)”请求时,我得到了正常的响应,但是创建的电子表格只

  • 我正在尝试从特定目录中的google工作表列表(大约570个工作表)中删除多余的行和列(已知范围)。 我能够使用google drive API获取电子表格Id。但是,修改页面的尺寸需要图纸Id。 我无法找到通过驱动器API(文件属性)检索此工作表ID的方法,也无法找到任何关于如何在电子表格中列出可用工作表的留档,因为我有电子表格ID。 我尝试使用谷歌应用程序脚本来达到我的目标,但运行时间已经超过

  • 我的脚本在提交一些表单后在电子表格上添加新的表单。此表用作排行榜。但要查看它,我必须单击新创建的选项卡。有什么办法可以从脚本中完成吗? 这张图片是创建新工作表后的屏幕截图(第1周第2课)。 P、 我发现我必须重新表述这个问题。问题是,我想从另一个电子表格(此电子表格有onSubmit触发器,并在其他打开的电子表格(排行榜)上创建和放置信息)中执行此操作。我检查setActiveSheet(工作表)

  • 问题内容: 我想在不打开应用程序的情况下对excel中的单元格进行调整。我想和詹金斯一起做,这样我就可以自动化(回归)测试。(这甚至可能吗?) 正如您在附上的图像中看到的那样,我努力将excel中的“ N”值更改为“ Y”值,反之亦然。我想通过Jenkins的用户界面来实现这一目标。我已经听说过类似参数化构建的内容,但是我无法在任何网站上获得帮助,也无法提供有关该主题的更多信息。 我想要实现的是这

  • 我有多个谷歌电子表格与预订数据,如预订号码,客户端名称,电子邮件,预订日期等。在所有工作表中,这些列的顺序并不相同。 我想在一个“主”电子表格中更新我所有“源”表中的所有数据。这意味着,一旦添加新行或更新现有行,数据将同步到主电子表格 实现这一目标的最佳方式是什么?Javascript或者是否存在一些现有的Google Sheets插件? 示例表1:快速船预订 示例表2:机场中转预订 主表 非常感