如何使用gspread lib从谷歌电子表格中删除/删除行。在python?

时间:2013-01-31 12:17:42

标签: python google-sheets gspread

我想使用gspread库从谷歌电子表格中删除记录。

另外,如何在google电子表格中获取行数/记录数? gspread提供.row_count(),它返回总行数,包括空白行,但我只想计算有数据的行。

4 个答案:

答案 0 :(得分:4)

您能准确指定删除行/记录的方式吗?它们在纸张中间吗?底部?顶部?

我有一种情况,我想在处理完之后擦除除标题之外的所有数据。为此,我只重新调整了工作表的两次。

#first row is data header to keep    
worksheet.resize(rows=1)
worksheet.resize(rows=30)

这是一个简单的强力解决方案,用于擦除整张纸而不删除工作表。

使用数据计算行数

一种方法是使用get_all_records()在json对象中下载数据,然后检查该对象的长度。该方法返回最后一个非空白行上方的所有行。如果行后面的行不是空白,而是没有尾随空白,它将返回空白行。

答案 1 :(得分:4)

自gspread版本0。0。0(2016年12月)起,您可以使用delete_row()删除一行。

例如,要删除索引为42的行,请执行以下操作:

worksheet.delete_row(42)

答案 2 :(得分:1)

阅读源代码似乎没有直接删除行的方法 - 只有添加它们的方法或.resize()方法来调整工作表的大小。 在获取行号时,有一个.row_count()方法可以为您完成这项工作。

答案 3 :(得分:0)

添加到@AsAP_Sherb答复:

如果要计算行数,请不要使用get_all_records(),而应使用worksheet.col_values(1)并计算其长度。 (而不是获取整个表,您只会得到一列) 我认为这样做会更省时(并且一定会提高内存效率)