Я создал электронную таблицу с Sheet APIv4.Когда я перечисляю каталог с Drive APIv3, он показывает только [].Мои коды приходят с официальных (гугл) сайтов.Я использую Python3.6 и Google Colab Laboratory.
from google.colab import auth
auth.authenticate_user()
from googleapiclient.discovery import build
sheet_service = build('sheets', 'v4')
drive_service = build('drive', 'v3')
Создание:
spreadsheet_metadata = {'properties': {'title': 'Second spreadsheet2'},
'sheets': [
{
'properties': {
'title': 'First Sheet',
'gridProperties' : {
'columnCount': 6,
'rowCount': 11,
'frozenRowCount': 1
}
}
},
{
'properties': {
'title': 'Second Sheet',
'gridProperties': {
'columnCount': 4,
'rowCount': 8,
'frozenColumnCount': 2
}
}
}
]
}
spreadsheet = sheet_service.spreadsheets().create(body=spreadsheet_metadata).execute()
spreadsheet_id = spreadsheet['spreadsheetId']
print('Created "%s"' % spreadsheet['properties']['title'])
print('Spreadsheet ID: {0}'.format(spreadsheet.get('spreadsheetId')))
В результате получается
Created "Second spreadsheet2"
Spreadsheet ID: 1fqreW1y3fcdaJmQWS1j25OMKaFjf90XfO38WB4ZIqIM
Листинг:
page_token = None
while True:
response = drive_service.files().list(q="mimeType='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'",
spaces='drive',
fields='nextPageToken, files(id, name)',
pageToken=page_token).execute()
for file in response.get('files', []):
# Process change
print('Found file: %s (%s)' % (file.get('name'), file.get('id')))
page_token = response.get('nextPageToken', None)
if page_token is None:
break
Это приводит к:
[]
Поскольку листинг работает хорошо (я проверял много раз), я думаю, что проблема не в правильном spreadsheet_metadata
.Чего-то не хватает, но я понятия не имею, что.Я надеюсь, что у кого-то есть больше практики.Спасибо.
Обновление Благодаря комментарию @Tanaike я обнаружил свое недоразумение.Google строго различает файлы Excel xlsx и файлы Google "xlsx".Поэтому, если кто-то хочет обрабатывать их вместе, одним из решений будет использование
" mimeType='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' or
mimeType='application/vnd.google-apps.spreadsheet'"
в запросе, но я не знаю, вызывает ли это позже другие проблемы.Поскольку у меня всего несколько файлов, возможно, я преобразую Excel xlsx в формат Google "xlsx", учитывая только один тип файлов, который проще (для меня).