Python + Sheet |我可以知道使用 BatchUpdate 更改 BGcolor 的语法吗?
Python + Sheet | May I know the syntax to change BGcolor using BatchUpdate?
以下 python 代码是 BatchUpdate:
- 将数字 'x' 添加到行
的 H 列
- 将整行更改为绿色
可以涉及 1 行或多行。
如何更改背景颜色?
另外,如果 rowListTH[] 只有 1 个项目,此代码是否仍然有效?
ssName = ssTH.title + '!'
request_body = {
"valueInputOption": "RAW",
"data": [
{
'range': ssName + 'H'+rowListTH[-1]+':H'+rowListTH[0],
'values': [
{
[str(x)],
"backgroundColor": {"green": 1}
}
]
},
]
}
service.spreadsheets().values().batchUpdate(
spreadsheetId = ssID,
body = request_body
).execute()
==================================编辑========== ========================
我已经进行了更改,但我无法更新为整行或整列着色,它总是只会为单个单元格着色。
请检查我哪里做错了
我想为第 5-12 行的 A 到 I 列着色。
对于我的结果,我只将单元格 A5 着色。
request_body = {
"updateCells":{
"rows":[
{
"values":[
{
"userEnteredFormat":{
"backgroundColor":{
"red": 0,
"green": 1,
"blue": 0,
"alpha": 1
}
}
}
]
}
],
"fields":"userEnteredFormat.backgroundColor",
"range":{
"sheetId": TH_gid,
"startRowIndex": 4,
"endRowIndex": 11,
"startColumnIndex": 0,
"endColumnIndex": 9
}
}
}
body = {
"requests": request_body
}
response = service.spreadsheets().batchUpdate(spreadsheetId=ssID, body=body).execute()
答案:
要更改单元格的背景颜色,您需要使用 spreadsheets.batchUpdate
端点,而不是 spreadsheets.values.batchUpdate
端点。
请求示例:
request_body = {
"updateCells":{
"rows":[
{
"values":[
{
"userEnteredFormat":{
"backgroundColor":{
"red": 0,
"green": 1,
"blue": 0,
"alpha": 1
}
}
}
]
}
],
"fields":"userEnteredFormat.backgroundColor",
"range":{
"sheetId": sheet-id,
"startRowIndex": 0,
"endRowIndex": 0,
"startColumnIndex": 0,
"endColumnIndex": 1
}
}
}
body = {
"requests": request_body
}
response = service.spreadsheets().batchUpdate(spreadsheetId=ss.id, body=body).execute()
您需要更改的内容:
red
、green
、blue
和 alpha
值。 As per the documentation,这些是 RGB 色彩空间中 0 和 1 之间的浮点表示,分母为 255。
- 例如,对于
#FFFFFF
或 255 255 255
的白色,您将分别使用 red
、green
和 blue
。
- Sheet ID - 这不是电子表格 ID,这是当您在浏览器中查看电子表格时在 URL 中看到的
#gid
。 Sheet1
默认情况下总是 0
,但任何添加的工作表都是随机的。这个值是一个整数。
- 开始和结束的列和行:
startRowIndex
、endRowIndex
、startColumnIndex
和 endColumnIndex
是从 0 开始索引的。这意味着如果您只想为单元格 A1
着色,那么您的请求将是:
"startRowIndex": 0,
"endRowIndex": 1,
"startColumnIndex": 0,
"endColumnIndex": 1
要为整个列着色,您首先需要找出行数并提出以下请求(假设列 A):
"startRowIndex": 0,
"endRowIndex": number_of_rows - 1,
"startColumnIndex": 0,
"endColumnIndex": 1
由于这是一个与您使用的不同的端点,因此需要将其作为单独的 HTTP 请求进行。
参考文献:
以下 python 代码是 BatchUpdate:
- 将数字 'x' 添加到行 的 H 列
- 将整行更改为绿色
可以涉及 1 行或多行。 如何更改背景颜色? 另外,如果 rowListTH[] 只有 1 个项目,此代码是否仍然有效?
ssName = ssTH.title + '!'
request_body = {
"valueInputOption": "RAW",
"data": [
{
'range': ssName + 'H'+rowListTH[-1]+':H'+rowListTH[0],
'values': [
{
[str(x)],
"backgroundColor": {"green": 1}
}
]
},
]
}
service.spreadsheets().values().batchUpdate(
spreadsheetId = ssID,
body = request_body
).execute()
==================================编辑========== ========================
我已经进行了更改,但我无法更新为整行或整列着色,它总是只会为单个单元格着色。 请检查我哪里做错了
我想为第 5-12 行的 A 到 I 列着色。 对于我的结果,我只将单元格 A5 着色。
request_body = {
"updateCells":{
"rows":[
{
"values":[
{
"userEnteredFormat":{
"backgroundColor":{
"red": 0,
"green": 1,
"blue": 0,
"alpha": 1
}
}
}
]
}
],
"fields":"userEnteredFormat.backgroundColor",
"range":{
"sheetId": TH_gid,
"startRowIndex": 4,
"endRowIndex": 11,
"startColumnIndex": 0,
"endColumnIndex": 9
}
}
}
body = {
"requests": request_body
}
response = service.spreadsheets().batchUpdate(spreadsheetId=ssID, body=body).execute()
答案:
要更改单元格的背景颜色,您需要使用 spreadsheets.batchUpdate
端点,而不是 spreadsheets.values.batchUpdate
端点。
请求示例:
request_body = {
"updateCells":{
"rows":[
{
"values":[
{
"userEnteredFormat":{
"backgroundColor":{
"red": 0,
"green": 1,
"blue": 0,
"alpha": 1
}
}
}
]
}
],
"fields":"userEnteredFormat.backgroundColor",
"range":{
"sheetId": sheet-id,
"startRowIndex": 0,
"endRowIndex": 0,
"startColumnIndex": 0,
"endColumnIndex": 1
}
}
}
body = {
"requests": request_body
}
response = service.spreadsheets().batchUpdate(spreadsheetId=ss.id, body=body).execute()
您需要更改的内容:
red
、green
、blue
和alpha
值。 As per the documentation,这些是 RGB 色彩空间中 0 和 1 之间的浮点表示,分母为 255。- 例如,对于
#FFFFFF
或255 255 255
的白色,您将分别使用red
、green
和blue
。
- 例如,对于
- Sheet ID - 这不是电子表格 ID,这是当您在浏览器中查看电子表格时在 URL 中看到的
#gid
。Sheet1
默认情况下总是0
,但任何添加的工作表都是随机的。这个值是一个整数。 - 开始和结束的列和行:
startRowIndex
、endRowIndex
、startColumnIndex
和endColumnIndex
是从 0 开始索引的。这意味着如果您只想为单元格A1
着色,那么您的请求将是:
"startRowIndex": 0,
"endRowIndex": 1,
"startColumnIndex": 0,
"endColumnIndex": 1
要为整个列着色,您首先需要找出行数并提出以下请求(假设列 A):
"startRowIndex": 0,
"endRowIndex": number_of_rows - 1,
"startColumnIndex": 0,
"endColumnIndex": 1
由于这是一个与您使用的不同的端点,因此需要将其作为单独的 HTTP 请求进行。