我在更新Google网络硬盘上的现有电子表格时遇到了问题,而没有使用批量更新(现在我不确定它是否可行)
我已经有一些带有一些数据的电子表格,然后我通过
从谷歌驱动器中检索文件 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表格(例如)。
首先,我不确定如何正确地更新&#34;驱动器上的电子表格,因为我无法使用
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时,它都会创建一个新文件(包含我想要更新的电子表格),这对我来说实际上并没有多大意义。
那么有没有机会只更新驱动器上的文件并只使用电子表格方法?
答案 0 :(得分:1)
Jay Lee在此相关SO post中的此声明将提供明确的见解:
Google Drive API适用于通用文件/文件夹互动。要直接修改Google电子表格数据,Google Sheets API将是更好的选择。
此外,要更新Google电子表格,您可能需要查看Reading & Writing Cell Values,其中介绍了使用spreadsheets.values
集合的基本知识。有人提到,
如果您需要更新工作表中的格式或其他属性,则需要使用spreadsheets collection中描述的Updating Spreadsheets。
有关详细信息,请参阅Batch update operations,并显示示例here。