我正在尝试在设置背景色时在Google工作表中插入一行。
我已经将附加到新行的工作正常。从我在文档中可以看到的背景色设置为RGB字典,但是我找不到任何文件可以在官方API中执行此操作。我已经在append调用中尝试过,但这似乎不起作用。
似乎应该在body dict中,但是我在那里尝试了变体,并且得到TypeError响应。
range_notation = "Sheet1"
body = {
'values': [
row
],
'backgroundColor' : {'red': 1, 'green': 0, 'blue': 100}
}
result = sheet.values().append(spreadsheetId=spreadsheet_id,
range=range_notation,
body=body,
valueInputOption="RAW",
insert
尝试了类似的变体
body = {
'values': [
{
'userEnteredValue': row,
'userEnteredFormat': {
'backgroundColor': {'red': 100, 'green': 0, 'blue': 0},
},
},
],
}
但是它从库中获取HttpError。
答案 0 :(得分:2)
如果我的理解是正确的,那么该示例脚本如何?
在此模式中,将'sample1','sample2','sample3'的值作为一行附加到表中,并修改这些单元格的背景色。
spreadsheet_id = '###' # Please set Spreadsheet ID
sheetId = 0 # Please set sheet ID. For example, the 1st sheet ID of the default Spreadsheet is 0.
row = ['sample1', 'sample2', 'sample3'] # Please set the values.
values = [{'userEnteredFormat': {'backgroundColor': {'red': 1, 'green': 0, 'blue': 100}}, 'userEnteredValue': {'stringValue': col}} for col in row]
requests = {'requests': [{'appendCells': {'rows': [{'values': values}], 'fields': 'userEnteredFormat.backgroundColor,userEnteredValue', 'sheetId': sheetId}}]}
response = service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id, body=requests).execute()
print(response)
在此模式中,将'sample1','sample2','sample3'的值作为一行附加到表中,并修改该行的背景色。
spreadsheet_id = '###' # Please set Spreadsheet ID
sheetId = 0 # Please set sheet ID. For example, the 1st sheet ID of the default Spreadsheet is 0.
row = ['sample1', 'sample2', 'sample3'] # Please set the values.
ss = service.spreadsheets().get(spreadsheetId=spreadsheet_id).execute()
for sheet in ss['sheets']:
if sheet['properties']['sheetId'] == sheetId:
row.extend([''] * (sheet['properties']['gridProperties']['columnCount'] - len(row)))
break
values = [{'userEnteredFormat': {'backgroundColor': {'red': 1, 'green': 0, 'blue': 100}}, 'userEnteredValue': {'stringValue': col}} for col in row]
requests = {'requests': [{'appendCells': {'rows': [{'values': values}], 'fields': 'userEnteredFormat.backgroundColor,userEnteredValue', 'sheetId': sheetId}}]}
response = service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id, body=requests).execute()
print(response)
如果我误解了您的问题,而这不是您想要的结果,我深表歉意。