我有数据为
table_data = [["11"],["22"]],[["33"],["44"]]
的数组
我想使用sheet.values()。update将数据插入Google表格,但使用GridRange,不使用命名范围
我对此有决心:
service = build('sheets', 'v4', credentials=creds())
sheet = service.spreadsheets()
body = {'values': values}
SAMPLE_RANGE_NAME_2 = 'costs!A1:B2'
value_input_option = 'RAW'
result = sheet.values().update(
spreadsheetId=SAMPLE_SPREADSHEET_ID, range=SAMPLE_RANGE_NAME_2, valueInputOption=value_input_option, body=body).execute()
但是在范围A1:B2中使用不方便。我想用这样的东西
'startColumnIndex': 0,
'endColumnIndex': 1,
'startRowIndex': 0,
'endRowIndex': 1
我尝试为此使用batchUpdate,但它只能接受字符串参数
spreadsheet_id = SPREADSHEET_ID # TODO: Update placeholder value.
batch_update_spreadsheet_request_body = {
"requests": [
{
"pasteData": {
"data": str(table_data),
"type": "PASTE_NORMAL",
"delimiter": ",",
"coordinate": {
"sheetId": 0,
"rowIndex": 0,
"columnIndex": 0
}
}
}
]
}
request = service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id, body=batch_update_spreadsheet_request_body)
response = request.execute()
答案 0 :(得分:1)
table_data = [["11"],["22"]],[["33"],["44"]]
作为值。
table_data = [["11", "22"], ["33", "44"]]
。所以我用了这个。table_data = [["11", "22"], ["33", "44"]]
。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]
。如果我误解了你的问题,我表示歉意。