【发布时间】:2019-11-20 14:01:57
【问题描述】:
我正在尝试使用此处的示例使过滤器适用于 Google 表格 API4:https://developers.google.com/sheets/api/guides/filters。
他们的示例表的链接不起作用,所以我在这里创建了自己的:https://docs.google.com/spreadsheets/d/1kT4UU-jvFj273psdJ_fQz5xUP1Xv3Mg9zrs9U2ydM0g/edit#gid=0。它是共享的。
当我运行他们在网站上提供的代码时,工作表完全没有任何作用。这是我的代码。我只添加了前 3 行。
import custom
spreadsheet_id = '1kT4UU-jvFj273psdJ_fQz5xUP1Xv3Mg9zrs9U2ydM0g'
g = custom.APIv4() # builds service
my_range = {
'sheetId': 0,
'startRowIndex': 0,
'startColumnIndex': 0,
}
addFilterViewRequest = {
'addFilterView': {
'filter': {
'title': 'Sample Filter',
'range': my_range,
'sortSpecs': [{
'dimensionIndex': 3,
'sortOrder': 'DESCENDING'
}],
'criteria': {
0: {
'hiddenValues': ['Panel']
},
6: {
'condition': {
'type': 'DATE_BEFORE',
'values': {
'userEnteredValue': '4/30/2016'
}
}
}
}
}
}
}
body = {'requests': [addFilterViewRequest]}
addFilterViewResponse = g.service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id, body=body).execute()
duplicateFilterViewRequest = {
'duplicateFilterView': {
'filterId':
addFilterViewResponse['replies'][0]['addFilterView']['filter']
['filterViewId']
}
}
body = {'requests': [duplicateFilterViewRequest]}
duplicateFilterViewResponse = g.service.spreadsheets() \
.batchUpdate(spreadsheetId=spreadsheet_id, body=body).execute()
updateFilterViewRequest = {
'updateFilterView': {
'filter': {
'filterViewId': duplicateFilterViewResponse['replies'][0]
['duplicateFilterView']['filter']['filterViewId'],
'title': 'Updated Filter',
'criteria': {
0: {},
3: {
'condition': {
'type': 'NUMBER_GREATER',
'values': {
'userEnteredValue': '5'
}
}
}
}
},
'fields': {
'paths': ['criteria', 'title']
}
}
}
body = {'requests': [updateFilterViewRequest]}
updateFilterViewResponse = g.service.spreadsheets() \
.batchUpdate(spreadsheetId=spreadsheet_id, body=body).execute()
【问题讨论】:
标签: python filter google-sheets-api