能够创建Google文档,但无法创建Google表格

时间:2019-09-23 18:55:44

标签: google-drive-api

我正在Java后端中创建一个功能来创建Google表格。

现在在该后端中,它已经具有创建Google文档的功能,并且运行良好。以下是创建Google文档的功能。

  public String createFileFromHtml(Project project, String html) throws DocumentGatewayException {
// Determine the google drive ID for the given areaId
String areaId =
    Strings.isNullOrEmpty(project.getAreaId()) ? Constants.TEST_AREA : project.getAreaId();
String areaGoogleDriveId = null;
try {
  if (areaIdToGoogleDriveIdMap.isEmpty() || !areaIdToGoogleDriveIdMap.containsKey(areaId)) {
    String pageToken = null;
    do {
      String query = "'" + ERD_GOOGLE_DRIVE_ID + "' in parents";
      query += " and mimeType = '" + FOLDER_MIME_TYPE + "'";
      query += "and trashed = false";
      FileList result =
          drive
              .files()
              .list()
              .setQ(query)
              .setPageToken(pageToken)
              .setFields("nextPageToken, files(id, name)")
              .execute();
      for (File file : result.getFiles()) {
        areaIdToGoogleDriveIdMap.put(file.getName(), file.getId());
      }
      pageToken = result.getNextPageToken();
    } while (pageToken != null);
  }
} catch (IOException e) {
  throw new DocumentGatewayException(e);
}
areaGoogleDriveId = areaIdToGoogleDriveIdMap.get(areaId);
Preconditions.checkArgument(
    !Strings.isNullOrEmpty(areaGoogleDriveId), areaId + " needs to have a google drive folder");

// Generate metadata to be used to create the file using the google drive ID above.
File fileMetadata = new File();
fileMetadata.setName(project.getTitle());
fileMetadata.setMimeType("application/vnd.google-apps.document");
fileMetadata.setParents(Collections.singletonList(areaGoogleDriveId));

try {
  // Create file.
  File file =
      drive
          .files()
          .create(
              fileMetadata,
              new ByteArrayContent("text/html", html.getBytes(StandardCharsets.UTF_8)))
          .setFields("id")
          .execute();

  // Make all authors writers
  if (!project.getAuthorIds().isEmpty()) {
    for (String authorId : project.getAuthorIds()) {
      processor.setWritter(project.getUuid(), file.getId(), authorId, 0);
    }

    // Set owner
    String authorId = EmailUtils.AuthorNameToEmail(project.getAuthorIds().get(0));
    processor.setOwner(project.getUuid(), file.getId(), authorId, 0);
  }
  // Set commenter
  processor.setCommenter(project.getUuid(), file.getId(), 0);

  return file.getId();
} catch (IOException e) {
  logger.error(
      "Error creating document", KeyValue.string("project_uuid", project.getUuid()), e);
  throw new DocumentGatewayException(e);
}

}

我想创建一个Google表格。因此,我尝试将application/vnd.google-apps.document更改为application/vnd.google-apps.spreadsheet。但是更改之后,它仍在创建Google Doc,而不是Google Sheet。

所以有人知道为什么吗?我只需要创建一个Google表格即可。

Google Drive API版本:google-api-services-drive-v3-rev130-1.25.0

谢谢。

0 个答案:

没有答案