- Вы хотите создать новую электронную таблицу в определенной папке.
- Вы хотите добиться этого с помощью google-api-python-client с python.
Если мойпонимание правильное, как насчет этого ответа?
Проблема:
К сожалению, на текущем этапе новая таблица не может быть создана непосредственно в конкретной папке Google Диска с помощью API Sheets.В этом случае необходимо использовать Drive API.
Пример сценария:
Перед запуском сценария установите идентификатор папки.
Шаблон 1:
В этом шаблоне новая электронная таблица создается непосредственно в определенной папке на вашем Google Диске.Для создания электронной таблицы используется 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)
Шаблон 2:
В этом шаблоне после создания новой электронной таблицы с помощью API-интерфейсов листовЭлектронная таблица перемещается в определенную папку на вашем Google Диске.
Сценарий:
# 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)
Примечание:
- Для обоих образцов добавьте область действия
https://www.googleapis.com/auth/drive
.После добавления областей удалите созданный файл учетных данных, включая маркер обновления, и снова авторизуйтесь.Таким образом, дополнительные области отражаются в маркере обновления. - Если вы хотите использовать общий диск, измените его следующим образом.
- Для шаблона 1
file_metadata = {'name': 'sampleName','parents': ['### folderId ###'],'mimeType': 'application/vnd.google-apps.spreadsheet','driveId': "###"}
res = drive.files().create(body=file_metadata, supportsAllDrives=True).execute()
- Для шаблона 2
res = drive.files().update(fileId=results['spreadsheetId'], body={'driveId': "###"}, addParents=folderId, removeParents='root', supportsAllDrives=True).execute()
Ссылки:
Если я неправильно понял ваш вопрос, и это не то направление, в котором вы хотите, прошу прощения.