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

How to update google spreadsheet via sheets API v4

我在更新 google 驱动器上的现有传播sheet 时遇到了一个问题,没有使用批量更新(现在我不确定它是否可能)

我已经有了包含一些数据的现有传播sheet,然后我通过

从 google 驱动器检索文件
  Drive drive = new Drive.Builder(TRANSPORT, JSON_FACTORY, credential)
                .setApplicationName(APPLICATION_NAME)
                .build();
  drive.files().list().execute().getItems()

我很容易通过名称匹配我的文件,然后我只想更新已创建文件中的传播sheet。

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

在这里,我从匹配名称的文件中得到 spreadsheet,然后我只想将空 sheet 放在那里(例如)。

第一点,我不确定如何正确 "update" 驱动器上的传播 sheet,因为我无法使用

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

而且我不想使用批量更新,因为我已经通过 setSheet() 方法设置了 spreadsheet 内容。

我认为应该最终确定如下:

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() 方法,当我已经创建了我的 sheets 时,它似乎很容易用于更新,但似乎我不能简单地更新传播sheet 在现有文件中。

同样有趣的是,每次我使用 drive.perm.update,它都会创建一个新文件(带有我想更新的 spreadsheet),这对我来说实际上没有多大意义.

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

Jay Lee in this related 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 which describes the basics of using the 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 and examples are shown here