Google Sheet API,字体颜色,一次更新多个范围

2022-04-12 00:00:00 python google-sheets-api

问题描述

我目前通过遍历范围来更新多个范围。现在我正试着用一个电话更新所有的范围。但我想不出第二个靶场该放在哪里。我认为这是可能的。我不知道。以下是我的代码。

from multicore import g

key = '1-I9CugmHB1Ds6n1jBy4Zo4hk_k4sQsTmOFfccxRc2qo'
robo_font_color = [0.6, 0.0, 0.3]


range1 = {'sheetId': 184514576, 'startRowIndex': 2, 'endRowIndex': 3, 'startColumnIndex': 6, 'endColumnIndex': 9}
range2 = {'sheetId': 184514576, 'startRowIndex': 0, 'endRowIndex': 3, 'startColumnIndex': 1, 'endColumnIndex': 2}


def font_color(key, color):  # color is a 1x3 list
    data = {"requests": [{
        "repeatCell": {
            "range": range1,
            
            
            "cell": {
                "userEnteredFormat": {
                    "textFormat": {
                        "foregroundColor": {  # color of text
                            "red": color[0],
                            "green": color[1],
                            "blue": color[2]
                        },
                    }
                }
            },
            "fields": "userEnteredFormat.textFormat.foregroundColor"
        }
        
    }]
    }
    g.service.spreadsheets().batchUpdate(spreadsheetId=key, body=data).execute()


    
font_color(key,robo_font_color)

我应该将range2放在什么位置才能一次调用同时更新两个区域?


解决方案

此修改如何?

在您的情况下,使用[range1, range2]创建请求如何?

修改后的脚本:

from multicore import g

key = '1-I9CugmHB1Ds6n1jBy4Zo4hk_k4sQsTmOFfccxRc2qo'
robo_font_color = [0.6, 0.0, 0.3]

range1 = {'sheetId': 184514576, 'startRowIndex': 2, 'endRowIndex': 3, 'startColumnIndex': 6, 'endColumnIndex': 9}
range2 = {'sheetId': 184514576, 'startRowIndex': 0, 'endRowIndex': 3, 'startColumnIndex': 1, 'endColumnIndex': 2}

def font_color(key, color, ranges):  # color is a 1x3 list
    data = {"requests": [{
        "repeatCell": {
            "range": r,
            "cell": {
                "userEnteredFormat": {
                    "textFormat": {
                        "foregroundColor": {  # color of text
                            "red": color[0],
                            "green": color[1],
                            "blue": color[2]
                        },
                    }
                }
            },
            "fields": "userEnteredFormat.textFormat.foregroundColor"
        }
    } for r in ranges]}
    g.service.spreadsheets().batchUpdate(spreadsheetId=key, body=data).execute()


font_color(key,robo_font_color, [range1, range2])

引用:

  • Method: spreadsheets.batchUpdate
  • RepeatCellRequest

相关文章