使用 Python 将 xlsx 文档添加到 Google Drive 共享文件夹

Add xlsx documents to Google Drive shared folder using Python

我可以使用 Python 将 CSV 添加到共享的 google 驱动器文件夹,但我很困惑要在我的脚本中更改哪些内容以允许 excel 文档.这是我的 CSV 代码。

def publish_to_drive(folder_id, path_to_file, filename):
    SCOPES = ['https://www.googleapis.com/auth/drive']
    SERVICE_ACCOUNT_FILE = 'keys.json'
    credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
    service = discovery.build('drive', 'v3', credentials=credentials)
    file_metadata = {
        'name': filename,
        'parents': [folder_id],
        'mimeType': 'text/csv'
    }
    media_body = MediaFileUpload(path_to_file, mimetype='text/csv', 
                                 resumable=True)
    resp = service.files().create(body=file_metadata, media_body=media_body,supportsAllDrives=True).execute()

我意识到 mimetypes 需要更改,但我不确定它们需要更改为什么。我试过各种,但没能找到合适的。

使用正确的 mimetypes 我在尝试打开 excel 文件时得到以下信息:

如果在 text/csv 文件类型上使用函数没有问题,那么我相信您只需要将 mimetypetext/csv 更新为 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .

我在下面添加了一些 resources/links,列出了其他 mime 类型,如果您也需要您的函数来处理它们。

要真正支持多种 MIME 类型,您需要动态识别每个文件类型的 mimetype。您可以通过以下任一方式完成:

  • 简单的字符串操作(如果您看到一个模式)或对每个 mimetype 您想要支持的条件语句(都不推荐)
  • 或者为了普遍性,比如this

资源: