使用PyDrive上传XLSX并将其转换为Google表格

时间:2018-12-12 08:40:56

标签: python google-api google-sheets-api pydrive

我正在尝试将.xlsx文件上传到Google驱动器。我可以上传它。 但是,当我们尝试在云端硬盘中打开相同的文件时,必须使用Google表格将其打开。因此,它将创建一个具有相同名称的新文件,并占用驱动器空间。

我想我需要在上传时更改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'

在Google documentation

我找到了另一个MimeType

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

但这给了我错误

  

ApiRequestError:https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable&alt=json返回了“提供了无效的mime类型“>

请提出如何才能达到理想的效果。

1 个答案:

答案 0 :(得分:1)

我认为主要问题是pydrive是否使用Google驱动器v2或Google驱动器v3。我在源接缝中的挖掘指向v2,这意味着在创建文件时,您需要发送convert=true,以便在上载files.inesrt

时转换文件
# {'convert': True} triggers conversion to a Google Drive document.
file.Upload({'convert': True})

通过在文件上传时发送转换,它将自动转换为google docs类型。