【问题标题】:google spreadsheets gspread append_row issue谷歌电子表格 gspread append_row 问题
【发布时间】:2023-03-19 09:19:01
【问题描述】:

我正在开发一个生成动态谷歌电子表格报告的程序。

有时,当我使用 gspread append_row 函数在 Google 电子表格中创建新行(包含数据)时,它不会按预期工作,也不会引发异常。添加了新行,但里面没有数据。

下面的示例代码:

#!/usr/bin/python
import gspread

# report line data
report_line = ['name', 'finished <None or int>', 'duration <str>', 'id']

connection = gspread.login('email@google.com', 'password')
spreadsheet = connection.open('report_name')
sheet = spreadsheet.sheet1
sheet.append_row(report_line)

我错过了什么吗?这是一个已知的问题? 如何确定 append_row 函数成功完成?

【问题讨论】:

    标签: python gspread


    【解决方案1】:

    它在工作表的最后一行之后追加一个新行。默认情况下,工作表有 1000 行,因此您应该在 index=1001 处找到附加的行。

    尝试将工作表的大小调整为存在的行数:

    sheet.resize(1)
    

    您现在应该能够在数据的末尾而不是在工作表的末尾追加行。行数必须 >= 1。

    【讨论】:

      【解决方案2】:

      我正在添加@BFTM 的答案:

      1. 确保您只执行一次sheet.resize(1),而不是每次您想要添加追加一行(它会删除您写入超过 1 的所有行)
      2. 要动态获取行数,如果你不知道手动做,你可以看看这个answer。 (从一列中获取值并找到长度)
      3. 如果您可以直接访问电子表格,您可以只删除一次空行,然后像往常一样使用append_row()

      【讨论】: