1 回答
TA贡献1871条经验 获得超8个赞
您想使用 GridRange 放置值。
您想
table_data = [["11"],["22"]],[["33"],["44"]]
用作值。我认为如果你想把值放在 2 行和 2 列,它变成
table_data = [["11", "22"], ["33", "44"]]
. 所以我用了这个。如果要将11、22、33和44分别放入A1、B1、A2和B2,就变成了
table_data = [["11", "22"], ["33", "44"]]
。如果要将11、22、33和44分别放入A1、A2、B1和B2,就变成了
table_data = [["11", "33"], ["22", "44"]]
。
如果我的理解是正确的,那么使用batchUpdate的“updateCells”而不是“pasteData”的方法怎么样?我认为针对您的情况有几种解决方案。因此,请将此视为其中之一。
修改后的脚本:
spreadsheet_id = SPREADSHEET_ID
sheetId = 0
table_data = [["11", "33"], ["22", "44"]] # or table_data = [["11", "22"], ["33", "44"]]
rows = [{'values': [{'userEnteredValue': {'stringValue': f}} for f in e]} for e in table_data]
rng = {'sheetId': sheetId, 'startRowIndex': 0, 'startColumnIndex': 0}
fields = 'userEnteredValue'
body = {'requests': [{'updateCells': {'rows': rows, 'range': rng, 'fields': fields}}]}
request = service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id, body=body)
response = request.execute()
将值放入 后
A1:B2
,您可以设置左上角单元格的坐标。所以在这种情况下,GridRange 变成{'sheetId': sheetId, 'startRowIndex': 0, 'startColumnIndex': 0}
笔记:
如果要使用
table_data = [["11"], ["22"]], [["33"], ["44"]]
,请修改rows
为rows = [{'values': [{'userEnteredValue': {'stringValue': f[0]}} for f in e]} for e in table_data]
。
添加回答
举报