如何在gspread中动态更新/插入Google Sheets的行和列?

4
我有一个类似下面的电子表格,我有一个API可以按日期以列表形式提供数据,如下所示。
[05/06/2019', 10000, 14003, 140, $576.1786404]
[05/07/2019', 11000, 14003, 140, $576.1786404]
[05/08/2019', 50641, 14067, 357, $578.8120356]

我只需要在数据已经存在的日期上更新数据或者在新的日期中插入一行数据。
从上面的列表中,我需要更新2019年5月6日的数据,并且我需要在2019年5月7日2019年5月8日这两个日期中插入两行数据。
我有以下代码,但不知道如何执行下一步:

enter image description here

gc = gspread.authorize(creds)

worksheet = gc.open("chethan testing").sheet1

cell_list = worksheet.range('A3:E3')
cell_values = [1,2,3,4,5]

for i, val in enumerate(cell_values):
    cell_list[i].value = val 

 worksheet.update_cells(cell_list)

有人能指导我如何进行下一步吗?谢谢提前


我可以问你一个问题吗?1. 在您的电子表格中,列“A”的日期是否被放置为日期对象?如果您不能检查它,能否提供一个样本电子表格?2. 关于“在新日期的工作表中插入一行”,您是否想要将值放在其他工作表中?如果使用其他工作表,能否提供信息? - Tanaike
@Tanaike 1) 日期列不是一个对象,它只是一个字符串,在某些情况下,客户端表格中不会出现日期列。2) 我们将获得需要更新或插入的工作表ID的完整URL。 - chethi
1
谢谢您的回复。我很高兴您的问题已得到解决。 - Tanaike
1个回答

3

对于上述要求,我按照以下方式进行解决。

my_list = [['2018-11-10', '1000000000', '14003', '140', '576.1786404'], ['2018-11-11', '506541', '14067', '357', '578.8120356'], ['2018-11-12', '423175', '15250', '330', '627.4887'], ['2018-11-13', '274503', '11337', '240', '466.4812716'], ['2018-11-14', '285468', '11521', '194', '474.0522828']]

worksheet.values_update(
    'Sheet1!A3',
    params={
        'valueInputOption': 'RAW'
    },
    body={
        'values':my_list
    }
)

这将更新现有值并将其他值添加到新行。
更多信息请参见https://gspread.readthedocs.io/en/latest/api.html https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/update

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接