google spreadsheets gspread append_row issue

Lior Mizrahi picture Lior Mizrahi · Nov 25, 2014 · Viewed 13.5k times · Source

I'm working on a program that generates a dynamic google spreadsheet report.

Sometimes when I create a new row (with data) in google spreadsheet using gspread append_row function it doesn't work as expected and no exception is thrown. The new line is added but there is no data inside.

example code below:

#!/usr/bin/python
import gspread

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

connection = gspread.login('[email protected]', 'password')
spreadsheet = connection.open('report_name')
sheet = spreadsheet.sheet1
sheet.append_row(report_line)

Am I missing something? Is this a known issue? How can I be certain that the append_row function completes successfully?

Answer

BFTM picture BFTM · Mar 18, 2015

It appends a new row after the last row in the sheet. A sheet has 1000 rows by default so you should find your appended row at index=1001.

Try to resize the sheet to the number of rows that are present:

sheet.resize(1)

You should now be able to append rows at the end of your data rather than at the end of the sheet. The number of rows has to be >= 1.