Pythonでスプレッドシートの転記作業を実行したい!
Pythonとスプレッドシートを連携させることで、さまざまな業務を自動化できます。
前回の記事では、Pythonとスプレッドシートとの連携して、「Pythonでスプレッドシートの内容(特定の文字列)を検索して、別シートに転記(コピー)する方法」をご紹介しました。
今回は、その番外編として、特定のセルの転記だけではなく、特定の行ごと別のシートに転記する方法をご紹介していきます。
- Google Sheets APIの使い方
- Pythonでスプレッドシートの文字列を検索する方法
- Pythonでスプレッドシートの行を別シートに転記する方法
環境
OS | Mac 10.15.4 |
Python | python 3.9 |
仮想環境 | Poetry |
Homebrew | 8.0.19 Homebrew |
前回の記事
以下の記事で、Pythonでスプレッドシートの文字列検索と、シートの転記方法をご紹介しています。
こちらから試していただくと、より理解がしやすいと思います。
そもそも、Pythonとスプレッドシートの連携方法が分からない、という方には、はじめの一歩にこちらの記事がおすすめです!
前回との違いは、行単位で転記すること
今回も前回と同じスプレッドシートの表を使用します。
元スプレッドシートのURLはこちら。
前回は、「楽天」の記載あるのB6セルを抽出して、シート2に転記しました。
今回は、B6セルではなく、6行目をまるごとシート2にコピーをしていきます。
つまり、セル単位ではなく、行単位の転記です。
Pythonスクリプトの作成
スクリプトも、ここまでは前回と変わりません。
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ["https://spreadsheets.google.com/feeds","https://www.googleapis.com/auth/spreadsheets","https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json',scope)
client = gspread.authorize(creds)
sh = client.open_by_key('xxxxxxxxxxxxxxxxxxxxxxxx')
worksheet1 = sh.sheet1
worksheet2 = sh.worksheet('sheet2')
スプレッドシートの文字列を検索して、行単位で転記する方法
今回は、以下のコードを作成しました。
list_of_lists = worksheet1.get_all_values()
for i in list_of_lists:
if "楽天" in i[1] :
worksheet2.append_row(i, table_range='A1')
else:
pass
【スキップしていい補足①】get_all_valuesでシート内の全ての情報を取得
今回は、list_of_lists変数にシート上のすべてのデータを入れます。
【スキップしていい補足②】 i[1]で2列目を指定する
for文で取り出している i はリスト形式で、行の情報がすべて入っています。
i[0]で date情報(1列目)、
i[1]で、title情報(2列目)を取り出すことが可能です。
今回は、2列目を検索したいので、i[1]を指定しています。
実行結果
実際にPythonを実行してみます。
行ごと、まるっとコピーができました!
やった!シート1の6行目が、シート2に丸ごと転記できた!
ちなみに、検索したいワードは、andで繋ぐことで複数選択も可能です!
まとめ
前回の記事では、セル単位での転記を実施しましたが、今回は、行単位での転記をしました。
実際の業務ではむしろこちらの方が、使用頻度が高いかもしれません。
もしも、顧客リストのようなシートから、必要な行を検索して、ひとつずつコピーしていく作業であれば、一瞬で作業を終えることができますね!
コメント