- 您想要在特定文件夹中创建新的电子表格。
- 您希望使用 google-api-python-client 和 python 来实现此目的。
如果我的理解是正确的,这个答案怎么样?
Issue:
不幸的是,在现阶段,无法使用 Sheets API 直接在 Google Drive 的特定文件夹中创建新电子表格。在这种情况下,需要使用Drive API。
示例脚本:
在运行脚本之前,请设置文件夹 ID。
模式一:
在此模式中,新的电子表格将直接创建到 Google 云端硬盘中的特定文件夹中。为了创建电子表格,mimeType为application/vnd.google-apps.spreadsheet
用来。
Script:
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)
模式2:
在此模式中,Sheets API 创建新电子表格后,电子表格将移动到 Google 云端硬盘中的特定文件夹。
Script:
# 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)
Note:
- 对于这两个示例,请添加范围
https://www.googleapis.com/auth/drive
。添加范围后,请删除创建的凭证文件(包括刷新令牌)并再次授权。这样,附加范围就会反映到刷新令牌。
- If you want to use the shared Drive, please modify as follows.
- For pattern 1
file_metadata = {'name': 'sampleName','parents': ['### folderId ###'],'mimeType': 'application/vnd.google-apps.spreadsheet','driveId': "###"}
res = drive.files().create(body=file_metadata, supportsAllDrives=True).execute()
- For pattern 2
res = drive.files().update(fileId=results['spreadsheetId'], body={'driveId': "###"}, addParents=folderId, removeParents='root', supportsAllDrives=True).execute()
参考:
如果我误解了你的问题并且这不是你想要的方向,我深表歉意。