如何在Python中使用gspread库从Google表格中删除行?

20 投票
5 回答
19776 浏览
提问于 2025-04-17 14:18

我想用 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)

撰写回答