Как создать лист в определенной папке с Google API для Python? - PullRequest
1 голос
/ 26 сентября 2019

Я могу создать лист с кодом ниже в корне «Мой диск», но как мне создать лист в папке «Мой диск» или «Общие диски»?

from googleapiclient.discovery import build

service = build(‘sheets’, ‘v4’, credentials=creds)
sheet = service.spreadsheets()
body = {}
results = sheet.create(body=body).execute()
pprint(results)

1 Ответ

1 голос
/ 26 сентября 2019
  • Вы хотите создать новую электронную таблицу в определенной папке.
  • Вы хотите добиться этого с помощью 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()

Ссылки:

Если я неправильно понял ваш вопрос, и это не то направление, в котором вы хотите, прошу прощения.

...