如何通过工作表 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。
我在更新 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。