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

Google sheets 如何通过API v4更新google电子表格,google-sheets,google-drive-api,spreadsheet,google-spreadsheet-api,google-sheets-api,Google Sheets,Google Drive Api,Spreadsheet,Google Spreadsheet Api,Google Sheets Api,我在更新google drive上的现有电子表格时遇到了一个问题,没有使用批量更新(现在我甚至不确定是否可能) 我已经有一些数据现有的电子表格,然后我检索文件从谷歌驱动器通过 Drive drive = new Drive.Builder(TRANSPORT, JSON_FACTORY, credential) .setApplicationName(APPLICATION_NAME) .build(); drive.fil

我在更新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<>());
我不想使用批处理更新,因为我已经通过setSheet()方法设置了电子表格内容

我认为应通过以下方式最终确定:

Permission permission = drive.permissions().get(file.getId(), permissionId).execute().setType("anyone");
drive.permissions().update(
    spreadsheet.getSpreadsheetId(),
    permissionId,
    permission
).execute();
我在这里检查google API: 在这里: 但他们正在使用批处理更新

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

另外有趣的是,每次我使用drive.perm.update时,它都会创建一个新文件(包含我想要更新的电子表格),而这个文件实际上对我来说意义不大

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

本文中的这句话将提供一个清晰的见解:

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

此外,要更新Google电子表格,您可能需要检查哪些描述了使用集合的基础知识。有人提到,

如果需要更新图纸中的格式或其他属性,则需要使用,如中所述


有关更多信息,请参阅,并显示了示例。

有任何特殊原因不能使用批处理更新吗?我假设您的意思是,您希望在google工作表文档中完全更新/替换其中的特定工作表。是的,您是对的,我希望替换工作表文档中的所有工作表。嗯,当我看到setSheets方法时,我觉得它比批处理更新更简单,并且更易于阅读,以备将来使用。您认为批量更新是唯一的方法吗?或者您可以提供如何使用工作表列表(列表工作表)创建正确的批量更新请求的信息。因为我只发现我必须创建请求,并且有方法setAddSheet和newAddSheetRequest。我发现我可以删除电子表格中的所有工作表,但我没有找到插入工作表集合的方法。@Priya well我建议的解决方案现在不可能,因此,我们决定使用与此相关的in链接/答案中描述的批更新操作comment@Radim....canu请提供关于如何从postman或rest客户端执行批量更新的相同信息。.需要什么凭据以及在哪里可以获得这些凭据是的,谢谢,我已经读过了,但正如我上面所写的,我没有发现如何对图纸集合执行更复杂的更新。在文档中,只有一些AddSheetRequest和cell update的示例。这正是我想要避免的,我已经创建了工作表,我不想以某种方式重复它们的单元格。@Teyam…你能提供如何从rest客户端或postman执行相同操作的信息吗?执行该操作需要哪些详细信息
Permission permission = drive.permissions().get(file.getId(), permissionId).execute().setType("anyone");
drive.permissions().update(
    spreadsheet.getSpreadsheetId(),
    permissionId,
    permission
).execute();