想要复制谷歌表格中特定单元格的格式并将其粘贴到不同的单元格中。使用batch_update来执行此操作,但出现以下错误:
错误 - 值[“范围”] = Absolute_range_name(self.title, 值[“范围”]) ~~~~~~^^^^^^^^^ 类型错误:字符串索引必须是整数,而不是“str”
gc, authorized_user = gspread.oauth_from_dict(credentials, authorized_user)
sh = gc.open('temp_sheet')
worksheet = sh.worksheet('Sheet1')
paste_type = "PASTE_FORMAT"
body = {
"requests": [
{
"copyPaste": {
"source": {
"sheetId": worksheet.id,
"startRowIndex": 0,
"endRowIndex": 30,
"startColumnIndex": 0,
"endColumnIndex": 1,
},
"destination": {
"sheetId": worksheet.id,
"startRowIndex": 0, # Row index in destination sheet
"endRowIndex": 30, # Row index (exclusive)
"startColumnIndex": 2, # Column index in destination sheet
"endColumnIndex": 3, # Column index (exclusive)
},
"pasteType": paste_type,
}
}
],
}
worksheet.batch_update(body)
输出- 值[“范围”] = Absolute_range_name(self.title, 值[“范围”]) ~~~~~~^^^^^^^^^ 类型错误:字符串索引必须是整数,而不是“str”
当我看到你显示的请求体时,我认为需要使用
batch_update
的方法classgspread.spreadsheet.Spreadsheet
。 Ref但是,在你的脚本中,我猜你使用了batch_update
的方法classgspread.worksheet.Worksheet
。 参考我猜这就是您当前问题的原因Output- values["range"] = absolute_range_name(self.title, values["range"]) ~~~~~~^^^^^^^^^ TypeError: string indices must be integers, not 'str'
。为了解决这个问题,请修改如下,然后再次测试。
worksheet.batch_update(body)
sh.batch_update(body)