如何使用gspread向特定列添加行?

0 投票
1 回答
45 浏览
提问于 2025-04-11 22:23

我有一个谷歌表格,上面有一些值。可以想象成这样:

标题1 列1 标题3 列2
第一行
第二行

我还会有其他数据,这些数据会分别填充第二列和第四列。

所以我想用 append_row 方法,并且指定列名,因为在每次处理完(我的代码)后,我想立即把数据添加到我的谷歌表格里。


目前我做的事情(我想改变这个逻辑):

我有这两列。所以在我的代码完成后(所有数据准备好后),我之前是通过更新工作表来添加这些数据的,像这样(我在用 gspread):

        headers = worksheet.row_values(1)
        col1_index = headers.index('col1') + 1
        col2_index = headers.index('col2') + 1



        for item in result:
            col1_list.append(item['col1'])
            col2_list.append(item['col2'])
            

        col1_transposed = [[item] for item in col1_list]
        col2_transposed = [[item] for item in col2_list]


        col1_range = '{}2:{}{}'.format(chr(65 + col1_index - 1), chr(65 + col1_index - 1),
                                                len(col1_list) + 1)

        col2_range = '{}2:{}{}'.format(chr(65 + col2_index - 1), chr(65 + col2_index - 1),
                                                len(col2_list) + 1)


        worksheet.update(col1_range, col1_transposed)
        worksheet.update(col2_range, col2_transposed)

但现在我想说,我想把我的数据一行一行地添加到指定的列中。在每次处理后,我会得到这样的数据:

{'col1': 'value1', 'col2': 'value2'}

其中 value1 会放在第一行的列1,value2 会放在列2。

之后我会从代码中得到相同的结果:

{'col1': 'value3', 'col2': 'value4'}

我希望看到的结果是:

标题1 列1 标题3 列2
第一行 value1 value2
第二行 value3 value4

1 个回答

暂无回答

撰写回答