bay*_*man 6 python google-sheets google-drive-api google-api-python-client google-sheets-api
我可以在“我的驱动器”的根目录中使用以下代码创建工作表,但如何在“我的驱动器”或“共享驱动器”中的文件夹下创建工作表?
from googleapiclient.discovery import build
service = build(‘sheets’, ‘v4’, credentials=creds)
sheet = service.spreadsheets()
body = {}
results = sheet.create(body=body).execute()
pprint(results)
Run Code Online (Sandbox Code Playgroud)
Tan*_*ike 11
如果我的理解是正确的,这个答案怎么样?
遗憾的是,在现阶段,无法使用 Sheets API 直接将新的电子表格创建到 Google Drive 的特定文件夹中。在这种情况下,需要使用 Drive API。
在运行脚本之前,请设置文件夹 ID。
在此模式中,新电子表格会直接创建到 Google Drive 中的特定文件夹中。为了创建电子表格,使用了 mimeType application/vnd.google-apps.spreadsheet。
drive = build('drive', 'v3', credentials=creds)
file_metadata = {
'name': 'sampleName',
'parents': ['### folderId ###'],
'mimeType': 'application/vnd.google-apps.spreadsheet',
}
res = drive.files().create(body=file_metadata).execute()
print(res)
Run Code Online (Sandbox Code Playgroud)
在此模式中,在 Sheets API 创建新电子表格后,电子表格将移动到您的 Google Drive 中的特定文件夹。
脚本:# Create Spreadsheet to the root folder.
service = build('sheets', 'v4', credentials=creds)
sheet = service.spreadsheets()
body = {}
results = sheet.create(body=body).execute()
pprint(results)
# Move the created Spreadsheet to the specific folder.
drive = build('drive', 'v3', credentials=creds)
folderId = '### folderId ###'
res = drive.files().update(fileId=results['spreadsheetId'], addParents=folderId, removeParents='root').execute()
print(res)
Run Code Online (Sandbox Code Playgroud)
https://www.googleapis.com/auth/drive。并且在添加范围时,请删除创建的包含刷新令牌的凭据文件并重新授权。这样,额外的范围就会反映到刷新令牌中。file_metadata = {'name': 'sampleName','parents': ['### folderId ###'],'mimeType': 'application/vnd.google-apps.spreadsheet','driveId': "###"}res = drive.files().create(body=file_metadata, supportsAllDrives=True).execute()res = drive.files().update(fileId=results['spreadsheetId'], body={'driveId': "###"}, addParents=folderId, removeParents='root', supportsAllDrives=True).execute()如果我误解了您的问题并且这不是您想要的方向,我深表歉意。
| 归档时间: |
|
| 查看次数: |
2700 次 |
| 最近记录: |