如何在Python中使用gspread库从Google表格中删除行?
我想用 gspread
这个库从谷歌表格中删除一条记录。
另外,我该如何获取谷歌表格中的行数或记录数呢?gspread
提供了 .row_count()
方法,它会返回总行数,包括那些空白的行,但我只想统计有数据的行。
5 个回答
6
worksheet.delete_row(42)
这个方法已经不推荐使用了(自2021年12月起)。现在你可以用下面的方法来实现同样的效果:
worksheet.delete_rows(42)
新的方法还增加了一个功能,可以一次删除多行,具体用法是:
worksheet.delete_rows(42, 3)
这个方法会从第42行开始,删除接下来的三行。
要注意的是,它的行数是从1开始计算的(也就是说,不是从0开始的)。
10
你能具体说说你想怎么删除这些行或记录吗?它们是在表格的中间、底部还是顶部呢?
我曾经遇到过一种情况,我想在处理完数据后,清除所有数据,只保留表头。为此,我只需调整工作表的大小两次。
#first row is data header to keep
worksheet.resize(rows=1)
worksheet.resize(rows=30)
这是一种简单粗暴的方法,可以清空整个表格,而不删除工作表。
计算有数据的行数
一种方法是使用 get_all_records()
下载数据到一个 json 对象中,然后检查这个对象的长度。这个方法会返回最后一个非空行以上的所有行。如果某一行后面有非空行,它会返回空行,但不会返回尾部的空行。
13
从 gspread 版本 0.5.0(2016年12月)开始,你可以使用 delete_row()
来删除一行。
比如,如果你想删除索引为 42 的那一行,你可以这样做:
worksheet.delete_row(42)