我想使用gspread
库从谷歌电子表格中删除记录。
另外,如何在google电子表格中获取行数/记录数? gspread
提供.row_count()
,它返回总行数,包括空白行,但我只想计算有数据的行。
答案 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)
并计算其长度。
(而不是获取整个表,您只会得到一列)
我认为这样做会更省时(并且一定会提高内存效率)