Как я могу получить идентификатор файла Google электронных таблиц с помощью Google Drive API v3?

#java #android #google-drive-api #spreadsheet

#java #Android #google-drive-api #электронная таблица

Вопрос:

Я загружаю файл ContactList.csv на свой Google диск. Когда я нажимаю, чтобы открыть файл CSV, он создаст и откроет файл электронных таблиц Google «Список контактов». После того, как я внесу в него некоторые изменения, мне нужно выполнить поиск в этом файле Google таблиц, чтобы загрузить его в формате CSV.

Что mimeTpye я должен вставить? Я пытался использовать 'text/csv' , но он найдет исходный файл CSV, а не Google spreadsheets. Таким образом, я не знаю, как получить идентификатор файла Google таблиц. Кто-нибудь может сказать мне, как это сделать?

  FileList result= null;
        try {
            result= driveService.files().list()
                    .setSpaces("drive")
                    .setQ(" name contains 'ContactList' and mimeType = 'text/csv' ")

                    .setOrderBy("modifiedTime desc")
                    .execute();

            System.out.println("searchFile ID:" result.getFiles().get(0).getId());


        }catch (Exception e){
            e.printStackTrace();
        }
  

введите описание изображения здесь

Ответ №1:

Согласно документации, для поиска электронных таблиц Google ваш MimeType должен быть application/vnd.google-apps.spreadsheet . Ссылка на все миметипы Google здесь.

Пример кода того, как выполнить этот запрос (документация здесь):

   FileList result = driveService.files().list()
      .setQ("name contains 'ContactList' and mimeType='application/vnd.google-apps.spreadsheet'")
      .setOrderBy("modifiedTime desc")
      .setSpaces("drive")
      .setPageToken(pageToken)
      .execute();  

Комментарии:

1. Привет, я попробовал это и получил ошибку «java.lang. Исключение IndexOutOfBoundsException: Индекс: 0, Размер: 0». Кажется, что он ничего не получает:(

2. Привет! Я добавил фрагмент кода к своему ответу. Не могли бы вы попробовать запустить его так, как я написал (т. е. сначала задать запрос, а затем пробелы), и дайте мне знать, если вы все еще получаете ту же ошибку? Кроме того, в какой строке кода находится эта ошибка?