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

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

我在不使用批量更新的情况下更新谷歌驱动器上的现有电子表格时遇到问题(现在我不确定它是否可能)

我已经有了包含一些数据的现有电子表格,然后我通过

从谷歌驱动器检索文件
  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<>());

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

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

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

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

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

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

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

最佳答案

此声明由 Jay Lee在这个相关SO post将提供清晰的洞察力:

The Google Drive API is meant for generic file / folder interactions. For directly modifying Google Spreadsheet data, the Google Sheets API would be the better choice.

此外,要更新 Google 电子表格,您可能需要检查 Reading & Writing Cell Values其中描述了使用 spreadsheets.values 的基础知识收藏。有人提到,

If you need to update formatting or other properties in a sheet, you will need to use the spreadsheets collection, which is described in Updating Spreadsheets.

更多信息,请参阅Batch update operations和示例显示 here .

关于google-sheets - 如何通过 sheets API v4 更新 google 电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41871508/

相关文章:

iphone - 列出 Google 云端硬盘中的所有文件夹内容

java - 在 java 中从谷歌驱动器读取 '*.txt' 文件

google-apps-script - 在谷歌脚本中使用自定义顺序对列进行排序

google-sheets - 如何在 ARRAYFORMULA 中使用 AVERAGEIFS

google-sheets - 使用 Google Sheets,如何创建一个在值不存在时输出 '0' 的查询?

perl - 电子表格::WriteExcel - 数据验证

javascript - 元素/隐藏元素的.setValue

google-sheets - 根据 Google 电子表格上的日期切换行背景

google-drive-api - Google OAuth 接受按钮已禁用

javascript - 在 HTML 页面中使用 JavaScript 读取/查询 Google 电子表格