如何使用gspread lib从google电子表格中删除/删除行。用python?
我想使用库从google电子表格中删除一条记录如何使用gspread lib从google电子表格中删除/删除行。用python?,python,google-sheets,gspread,Python,Google Sheets,Gspread,我想使用库从google电子表格中删除一条记录 另外,如何在谷歌电子表格中获得行数/记录数gspread提供了.row\u count(),它返回总行数,包括空白行数,但我只想计算有数据的行数。阅读源代码时,似乎没有这样的方法可以直接删除行-只有添加行或.resize()的方法调整工作表大小的方法。 在获取行数时,有一个.row\u count()方法可以帮您完成这项工作。您能否准确指定删除行/记录的方式?它们在床单中间吗?底部?顶部 我曾经遇到过这样一种情况,在处理完数据后,我想擦除除标题之外
另外,如何在谷歌电子表格中获得行数/记录数
gspread
提供了.row\u count()
,它返回总行数,包括空白行数,但我只想计算有数据的行数。阅读源代码时,似乎没有这样的方法可以直接删除行-只有添加行或.resize()的方法
调整工作表大小的方法。
在获取行数时,有一个
.row\u count()
方法可以帮您完成这项工作。您能否准确指定删除行/记录的方式?它们在床单中间吗?底部?顶部
我曾经遇到过这样一种情况,在处理完数据后,我想擦除除标题之外的所有数据。为此,我只调整了两次工作表的大小
#first row is data header to keep
worksheet.resize(rows=1)
worksheet.resize(rows=30)
这是一个简单的强力解决方案,用于在不删除工作表的情况下擦除整个工作表
使用数据对行进行计数
一种方法是使用
get\u all\u records()
下载json对象中的数据,然后检查该对象的长度。该方法返回最后一个非空行上方的所有行。如果后面的行不是空的,但不是尾随空格,则返回空行。自gspread版本0.5.0(2016年12月)以来,您可以使用delete_row()
删除行
例如,要删除索引为42的行,请执行以下操作:
worksheet.delete_row(42)
向@AsAP_Sherb answere添加: 如果要计算有多少行,请不要使用
获取所有记录()
——而是使用工作表.col\u值(1)
,并计算其长度。
(不是得到整个表,而是只得到一列)
我认为这样会更节省时间(而且肯定会节省内存)谢谢您的回复。。我知道没有删除记录的方法,在第二点中,row_count给出了一个或多个包含空白数据的行数,但我只想计算包含数据的行数,那么您的问题不够详细。在这种情况下,您可以迭代每一行,检查它是否包含任何数据,如果包含,则进行计数。再次感谢,但假设电子表格中有1000条记录(包括空白数据),并逐个检查所有行。。。。这需要太多的时间。。。这对我不起作用……你真的试过吗?你量过需要多长时间吗?对今天的计算机cpu来说,对1000条记录进行迭代几乎算不上什么,你应该在一眨眼之间就能得到结果。同样的,先试试,然后测量,然后再抱怨;)此外,似乎:a)你没有其他选择,b)谷歌电子表格限制在400000个单元格,因此你永远不会发现自己处于100000行的情况。我正在尝试删除1000行电子表格上的第(15)行,10分钟后它仍在运行。预计需要那么长时间吗?当删除一行时,它会复制粘贴下面的行吗?我发现这个答案非常有用。速度是最好的。对我来说也是一样,它确实比使用
delete\u row()
按顺序删除所有行要有效得多。这种方法非常有用,我觉得他们应该更新文档中此resize
函数的用法