gspread
ライブラリを使用して Google スプレッドシートからレコードを削除したい。
また、Googleスプレッドシートで行/レコードの数を取得するにはどうすればよいですか? gspread
provides .row_count()
、空白の行を含む行の総数を返しますが、データのある行のみをカウントしたいです。
gspread
ライブラリを使用して Google スプレッドシートからレコードを削除したい。
また、Googleスプレッドシートで行/レコードの数を取得するにはどうすればよいですか? gspread
provides .row_count()
、空白の行を含む行の総数を返しますが、データのある行のみをカウントしたいです。
gspread バージョン 0.5.0 (2016 年 12 月) 以降、 で行を削除できますdelete_row()
。
たとえば、インデックス 42 の行を削除するには、次のようにします。
worksheet.delete_row(42)
行/レコードを削除する方法を正確に指定できますか? それらはシートの真ん中にありますか?下?上?
一度処理したヘッダー以外のすべてのデータを消去したい状況がありました。これを行うには、ワークシートのサイズを 2 回変更しました。
#first row is data header to keep
worksheet.resize(rows=1)
worksheet.resize(rows=30)
これは、ワークシートを削除せずにシート全体を消去するための単純なブルート フォース ソリューションです。
1 つの方法は、json オブジェクトでデータをダウンロードし、get_all_records()
そのオブジェクトの長さを確認することです。このメソッドは、空白でない最後の行より上のすべての行を返します。次の行が空白ではなく、末尾の空白がない場合、空白の行が返されます。
ソース コードを読むと、行を直接削除する方法はないようです。行を追加する.resize()
方法またはワークシートのサイズを変更する方法しかありません。行数の取得に関しては.row_count()
、その仕事を行うメソッドがあります。
worksheet.delete_row(42)
非推奨です (2021 年 12 月)。これで、次を使用して同じ結果を得ることができます
worksheet.delete_rows(42)
新しい関数には、複数の行を同時に削除できる機能が追加されています。
worksheet.delete_row(42, 3)
行 42 から始まる次の 3 行が削除されます。
行のカウントを 1 から開始することに注意してください (ゼロベースの番号付けではありません)。