Чтобы получить только компоненты «Проверка данных» данной электронной таблицы, вы просто запрашиваете соответствующее поле в вызове spreadsheets.get
:
service = get_authed_sheets_service_somehow()
params = {
spreadsheetId: 'your ssid',
#range: 'some range',
fields: 'sheets(data/rowData/values/dataValidation,properties(sheetId,title))' }
request = service.spreadsheets().get(**params)
response = request.execute()
# Example print code (not tested :p )
for sheet in response['sheets']:
for range in sheet['data']:
for r, row in enumerate(range['rowData']):
for c, col in enumerate(row['values']):
if 'dataValidation' in col:
# print "Sheet1!R1C1" & associated data validation object.
# Assumes whole grid was requested (add appropriate indices if not).
print(f'\'{sheet["properties"]["title"]}\'!R{r}C{c}', col['dataValidation'])
Указав поля,includeGridData
не требуется для получения данных для каждой ячейки из запрошенного вами диапазона.Не предоставляя диапазон, мы нацеливаемся на весь файл.Эта конкретная спецификация полей запрашивает объект rowData.values.dataValidation
и sheetId
и title
объекта properties
для каждого листа в электронной таблице.
Вы можете использовать Google API Explorer для интерактивного определенияСоответствующая действительная спецификация «полей», и дополнительно изучите ответ: https://developers.google.com/apis-explorer/#p/sheets/v4/sheets.spreadsheets.get
Подробнее о работе спецификаторов «полей» читайте в документации: https://developers.google.com/sheets/api/guides/concepts#partial_responses
(Для определенных запросов записиспецификации полей не являются обязательными, поэтому в ваших интересах определить, как их эффективно использовать.)