我的目标是在特定文件夹中创建电子表格。我正在使用V4工作表API创建电子表格,并在java中使用V3驱动器api创建文件夹。
但是,我不知道是否可以在特定文件夹中创建电子表格。如果有可能(用java语言),请告诉我。
为了实现在文件夹中创建电子表格的相同功能,我将创建电子表格,然后将其移动到前面创建的文件夹下。我使用这里的示例代码https://developers.google.com/drive/api/v3/folder (在文件夹之间移动文件)。
我正在创建这些使用服务帐户。
当我创建文件夹和电子表格时,将电子表格移动到该文件夹,然后向我的google帐户添加写权限,以便能够在浏览器中查看它们,我看到的是,在“与我共享”下,我可以看到文件夹F和文件SS-1,以及文件夹F中的相同文件SS-1。当我打印电子表格文件SS-1的父文件时,我只看到一个父文件,即文件夹F。
随后,当我添加额外的文件SS-2,SS-3等,将它移到文件夹F下,并给予我的google帐户写权限,我能够看到文件夹F下的所有文件,就像预期的那样。
我不知道我的代码中是否有错误,因为当我打印文件SS-1的父文件时,我只看到一个父文件,即文件夹F的文件ID。因此,我不确定为什么在文件夹F的同一级别上看到文件SS-1同时位于文件夹F的“共享与我”下面。
有什么指示来调试这个吗?或者,是否有更简单的方法直接在特定文件夹中创建电子表格?
发布于 2018-10-03 18:45:19
要在给定的文件夹中直接创建一个文件,您可以使用Drive (因为Sheets完全是关于操作电子表格的内容(而不是像“我在哪里可以找到这个电子表格”这样的元数据):
对于原始REST,这非常简单,如下所示:
POST https://www.googleapis.com/drive/v3/files?fields=createdTime%2Cid%2Cname%2Cparents
{
"mimeType": "application/vnd.google-apps.spreadsheet",
"parents": [
"some folder id"
],
"name": "API Explorer Sheet in Folder"
}Resp:
{
"id": "your new spreadsheet's id",
"name": "API Explorer Sheet in Folder",
"parents": [
"some folder id"
],
"createdTime": "2018-10-03T18:30:04.554Z"
}显然,您可以提供其他请求元数据来影响创建的文件。
将文件添加到文件夹中也可以通过Google的Java库实现--驱动器API的“与文件夹一起工作”页面有样本代码,用于照片。适应模仿上述POST请求的Google文件:
String folderId = "some folder id";
File fileMetadata = new File();
fileMetadata.setName("some file title");
fileMetadata.setParents(Collections.singletonList(folderId));
fileMetadata.setMimeType("application/vnd.google-apps.spreadsheet");
File file = driveService.files().create(fileMetadata)
.setFields("id, parents, name") // properties in the response
.execute();
System.out.println("File ID: " + file.getId());https://stackoverflow.com/questions/52632831
复制相似问题