Загрузить и преобразовать XLSX в Google Sheets с PyDrive

Я пытаюсь загрузить файл.xlsx на диск Google. Я могу загрузить его. Но когда мы пытаемся открыть тот же файл на диске, его нужно открыть с помощью Google Sheets. Таким образом, он создает новый файл с тем же именем и занимает место на диске.

Я полагаю, мне нужно изменить MimeType при загрузке.

Что я пробовал это:

file = drive.CreateFile({"parents": [{"kind": "drive#fileLink", "id": FolderID}]
                        ,'title': fileName
                        ,'mimeType':'application/vnd.ms-excel'})
file.SetContentFile('12dec2018.xlsx')
file.Upload()

и я тоже попробовал этот

'mimeType':'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'

В гугл документации

Я нашел другой MimeType

'mimeType':'application/vnd.google-apps.spreadsheet'

Но это дает мне ошибку

ApiRequestError: https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable&alt=json вернул "Предоставлен неверный тип пантомимы">

Подскажите, пожалуйста, как мне достичь желаемого результата.

1 ответ

Решение

Я думаю, что главный вопрос будет в том, использует ли pydrive Google drive v2 или Google drive v3. Мои раскопки в исходных швах указывают на v2, что означает, что при создании файла вам нужно отправить convert=true для файла, который будет конвертирован во время загрузки files.inesrt

# {'convert': True} triggers conversion to a Google Drive document.
file.Upload({'convert': True})

Отправив команду convert при загрузке файла, он автоматически преобразуется в тип документа Google.

Другие вопросы по тегам