Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用gspread lib从google电子表格中删除/删除行。用python?_Python_Google Sheets_Gspread - Fatal编程技术网

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

如何使用gspread lib从google电子表格中删除/删除行。用python?,python,google-sheets,gspread,Python,Google Sheets,Gspread,我想使用库从google电子表格中删除一条记录 另外,如何在谷歌电子表格中获得行数/记录数gspread提供了.row\u count(),它返回总行数,包括空白行数,但我只想计算有数据的行数。阅读源代码时,似乎没有这样的方法可以直接删除行-只有添加行或.resize()的方法调整工作表大小的方法。 在获取行数时,有一个.row\u count()方法可以帮您完成这项工作。您能否准确指定删除行/记录的方式?它们在床单中间吗?底部?顶部 我曾经遇到过这样一种情况,在处理完数据后,我想擦除除标题之外

我想使用库从google电子表格中删除一条记录


另外,如何在谷歌电子表格中获得行数/记录数
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
函数的用法