在Python中使用工作表API我试图使用交替颜色格式化工作表。在UI中,可以在Format>中找到它。交替的颜色......
从我能够找到的内容可以通过使用banding的API完成。不幸的是,我还没有找到一个如何完成这个工作的实例。下面是我构建的值词典,目前颜色值并不重要,我只是喜欢将纸张着色。
requests = {
'bandedRange': {
'bandedRangeId': 1,
'range': {
'sheetId': 0,
'startRowIndex': 0,
'endRowIndex': len(values),
'startColumnIndex': 0,
'endColumnIndex': 4,
},
'rowProperties': {
'headerColor': {
'red': 1,
'green': 0,
'blue': 1,
'alpha': 1,
},
'firstBandColor': {
'red': 1,
'green': 0,
'blue': 0,
'alpha': 0,
},
'secondBandColor': {
'red': 0,
'green': 1,
'blue': 0,
'alpha': 0,
}
},
},
'fields': '*',
}
body = {'requests': requests}
response = service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id, body=body).execute()
此操作失败,并显示以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/oauth2client/_helpers.py", line 133, in positional_wrapper
return wrapped(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/googleapiclient/http.py", line 840, in execute
raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 400 when requesting https://sheets.googleapis.com/v4/spreadsheets/$spreadsheet_id:batchUpdate?alt=json returned "Invalid JSON payload received. Unknown name "banded_range" at 'requests': Cannot find field.">
我很确定我的问题是字段值,但是我找不到这里使用的有效示例。如果我完全省略字段键,我会得到同样的错误。
答案 0 :(得分:1)
根据batchUpdate的参考文档,requests
会获取一组Request个对象。每个Request
必须只有一个字段集,条带的可用字段为:
"updateBanding": {
object(UpdateBandingRequest)
},
"addBanding": {
object(AddBandingRequest)
},
"deleteBanding": {
object(DeleteBandingRequest)
},
没有字段bandedRange
,这是您尝试设置的内容。这是错误消息(Unknown name "banded_range" at 'requests': Cannot find field.
)所说的内容......虽然我不知道为什么它将bandedRange转换为snake_case。
根据您是否要添加或更新带状范围,您可以将updateBanding
设为UpdateBandingRequest个对象,将addBanding
设置为AddBandingRequest对象
将addBanding
添加到您的JSON格式。如上所述,您最终将创建以下JSON。此外,密钥fields
是可选的。
{'addBanding': {
'bandedRange': {
'bandedRangeId': 1,
'range': {
'sheetId': 0,
'startRowIndex': 0,
'endRowIndex': len(values),
'startColumnIndex': 0,
'endColumnIndex': 4,
},
'rowProperties': {
'headerColor': {
'red': 1,
'green': 0,
'blue': 1,
'alpha': 1,
},
'firstBandColor': {
'red': 1,
'green': 0,
'blue': 0,
'alpha': 0,
},
'secondBandColor': {
'red': 0,
'green': 1,
'blue': 0,
'alpha': 0,
}
},
},
},
},