在文件夹中使用GSpread创建电子表格

2024-06-07 21:00:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我找不到任何关于如何使用GSpread在某个Google驱动器目录中创建GSheet的文档。在

我已经检查了文档并查看了一些后端代码。在

我当前正在使用以下代码创建电子表格:

worksheet = sh.add_worksheet(title='Overview', rows='100', cols='9')

我希望能够在google驱动器上的目录中创建电子表格,例如:

X>;Y>;电子表格

任何帮助都将不胜感激

干杯。在


Tags: 代码文档gt目录addtitleshgoogle
1条回答
网友
1楼 · 发布于 2024-06-07 21:00:24
  • 您要为特定文件夹创建新的电子表格。在
  • 您希望使用Python实现这一点。在

如果我的理解是正确的,这个答案呢?在

修改点:

  • 不幸的是,Sheets API无法实现这一点。在这种情况下,需要使用Drive API。在
  • 在您的脚本中,我认为您使用gspread.authorize(),就像gc = gspread.authorize(credentials)。在这个修改中,credentials被使用。在
  • 您的问题^{}中的脚本用于将工作表添加到现有的电子表格中。使用gspread创建新的电子表格时,请使用^{}
    • 在本例中,将在根文件夹中创建新的电子表格。在

准备工作:

在使用以下脚本之前,请在API控制台启用驱动器API,并添加https://www.googleapis.com/auth/drive的作用域。如果您正在使用https://www.googleapis.com/auth/drive.file的作用域,请使用它,并且不需要将该作用域修改为https://www.googleapis.com/auth/drive。在

  • 如果您使用的是OAuth2,请删除包含刷新令牌的文件。然后,请运行脚本并重新授权。这样,添加的作用域将反映到访问令牌。

  • 如果您使用的是服务帐户,则不需要删除该文件。

模式1:

下面的示例脚本将为特定文件夹创建新的电子表格。在

示例脚本:

from apiclient import discovery

destFolderId = '###'  # Please set the destination folder ID.
title = '###'  # Please set the Spreadsheet name.

drive_service = discovery.build('drive', 'v3', credentials=credentials)  # Use "credentials" of "gspread.authorize(credentials)".
file_metadata = {
    'name': title,
    'mimeType': 'application/vnd.google-apps.spreadsheet',
    'parents': [destFolderId]
}
file = drive_service.files().create(body=file_metadata).execute()
print(file)

模式2:

如果要将现有电子表格移动到特定文件夹,请使用以下脚本。在

示例脚本:

^{pr2}$

参考文献:

如果我误解了你的问题,而这不是你想要的方向,我道歉。在

编辑:

当您想共享文件夹时,请使用以下脚本。在

示例脚本:

drive_service = discovery.build('drive', 'v3', credentials=credentials)  # Use "credentials" of "gspread.authorize(credentials)".
folderId = "###"  # Please set the folder ID.
permission = {
    'type': 'user',
    'role': 'writer',
    'emailAddress': '###',  # Please set the email address of the user that you want to share.
}
res = drive_service.permissions().create(fileId=folderId, body=permission).execute()
print(res)

参考:

相关问题 更多 >

    热门问题