-
你想把
[[max_temp, avg_temp, min_temp]]
B-C、E-G和H-J列。
如果我的理解是正确的,那么这次修改怎么样?
修改点:
-
如果
values.append
使用时
[最高温度,平均温度,最低温度]]
和
'Sheet1!B:D'
分别用作值和范围,将值放入列A-C。即使
'Sheet1'
使用时,结果相同。
-
写作
[最高温度,平均温度,最低温度]]
对于B-C列,有两种方法:
-
当最后一行假设为10时,它使用
'Sheet1!B11'
作为射程。
-
使用范围时
“第1张!B:D'
,它使用
[["", max_temp, avg_temp, min_temp]]
作为价值。
-
在这种情况下,虽然将值放在最后一行,但当值将空元素添加到数组顶部时,会出现值没有放在正确位置的情况。
在我的环境中,我以前在这种情况下感到困惑。所以我想了个办法解决了我的问题。在这个解决方案中,
AppendCellsRequest
属于
spreadsheets.batchUpdate
使用。我认为你的情况可能会有一些解决办法,所以请把这看作是其中之一。
修改脚本:
请更新脚本(之后
service = build('sheets', 'v4', http=creds.authorize(Http()))
)到以下行:
spreadsheet_id = "#####" # Please set spreadsheet ID here.
sheetId = 0 # Please set sheet ID here.
values = [[max_temp, avg_temp, min_temp]]
range_list = [1, 4, 7] # columns B, E and H. First index is 0.
rows = [{'values': ([{}] * e) + [{'userEnteredValue': {'stringValue': r}} for r in values[0]]} for e in range_list]
body = {'requests': [{'appendCells': {'rows': rows, 'sheetId': 0, 'fields': "userEnteredValue.stringValue"}}]}
result = service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id, body=body).execute()
注:
-
这个修改过的脚本假定您的环境可以使用sheets api。
-
使用此脚本时,请将工作表ID设置为
Sheet1
并将值设置为
max_temp, avg_temp, min_temp
是的。
-
range_list = [1, 4, 7]
表示B、E和H列。在本例中,第一个索引为0。
-
在这个修改过的脚本中,所有
range_list
作为请求主体创建并使用。这样,一个api调用就可以放入值。所以
for i in range(3)
在你的问题可以删除。
-
这是一个示例修改。所以请根据你的情况修改一下。
参考文献:
如果我误解了你的问题,我很抱歉。