gpt4 book ai didi

python + google drive : upload xlsx, 转换为google sheet,获取共享链接

转载 作者:太空狗 更新时间:2023-10-29 21:05:40 24 4
gpt4 key购买 nike

我想要的程序的流程是:

  1. 将 xlsx 电子表格上传到驱动器(它是使用 pandas to_excel 创建的)
  2. 将其转换为 Google 表格格式
  3. 指定任何知道链接的人都可以编辑它
  4. 获取链接并将其分享给将输入信息的人
  5. 下载完成的表格

我目前正在使用 PyDrive,它解决了步骤 1 和 5,但还有一些 Unresolved 问题。

如何转换为 google 表格格式?当我创建要使用 PyDrive 上传的文件时,我试图将 mimeType 指定为 'application/vnd.google-apps.spreadsheet',但这给了我一个错误。

如何将文件设置为任何知道链接的人都可以编辑?设置完成后,我可以使用 PyDrive 轻松获得共享链接。

更新:使用 convert=True 标志可以轻松从 xlsx 转换为 google 表格。见下文。我仍在寻找一种方法来将我的新文件的共享设置设置为“知道链接的任何人都可以编辑”。

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)

test_file = drive.CreateFile({'title': 'testfile.xlsx'})
test_file.SetContentFile('testfile.xlsx')
test_file.Upload({'convert': True})

最佳答案

对于“INSERT”和“COPY”方法,都有一个可选的查询参数“convert”;

convert=true,

Whether to convert this file to the corresponding Google Docs format. (Default: false)

这里有一个python例子:

Google Documentation - Copy

您需要使用 Python 客户端库才能使代码正常工作。

from apiclient import errors
from apiclient.http import MediaFileUpload
# ...

def insert_file(service, title, description, parent_id, mime_type, filename):
"""Insert new file.

Args:
service: Drive API service instance.
title: Title of the file to insert, including the extension.
description: Description of the file to insert.
parent_id: Parent folder's ID.
mime_type: MIME type of the file to insert.
filename: Filename of the file to insert.
Returns:
Inserted file metadata if successful, None otherwise.
"""
media_body = MediaFileUpload(filename, mimetype=mime_type, resumable=True)
body = {
'title': title,
'description': description,
'mimeType': mime_type
}
# Set the parent folder.
if parent_id:
body['parents'] = [{'id': parent_id}]

try:
file = service.files().insert(
body=body,
convert=true,
media_body=media_body).execute()

# Uncomment the following line to print the File ID
# print 'File ID: %s' % file['id']

return file
except errors.HttpError, error:
print 'An error occured: %s' % error
return None

我还没有尝试过,所以你需要测试一下。

关于python + google drive : upload xlsx, 转换为google sheet,获取共享链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28756179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com