7

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

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

下面的示例代码:

#!/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 函数成功完成?

4

2 回答 2

12

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

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

sheet.resize(1)

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

于 2015-03-17T23:41:15.173 回答
6

我要添加到@BFTM 的答案:

  1. 确保你只做sheet.resize(1)一次,而不是每次你想添加一行(它会删除你写的超过 1 的所有行)
  2. 要动态获取行数,如果您不知道手动操作,可以查看此答案。(从一列中获取值并找到长度)
  3. 如果您可以直接访问电子表格,则只需删除一次空行,然后append_row()照常使用。
于 2018-12-14T07:12:55.943 回答