Python日記

【GAS】Pythonでスプレッドシートの行ごと別シートに転記(コピー)する方法【Google Sheets API】

2021年5月29日

GAS スプレッドシートの行を丸ごと転記の巻
お悩みさん

Pythonでスプレッドシートの転記作業を実行したい!

Pythonとスプレッドシートを連携させることで、さまざまな業務を自動化できます。

前回の記事では、Pythonとスプレッドシートとの連携して、以下の作業をご紹介しました。

  • Pythonでスプレッドシートの内容(特定の文字列)を検索して、
  • 別シートに転記(コピー)する

今回は、そちらの記事の番外編として、特定のセルの転記だけではなく、

特定の行ごと別のシートに転記する方法をご紹介していきます。

クリワン

この記事はこんな方におすすめです!

  • ノンプログラマーだけど、GASを使えるようになりたい
  • マーケティング業務でデータ解析をしていきたい
  • ITスキルを身につけて、年収をアップさせたい

この記事で学べること

  1. Google Sheets APIの使い方
  2. Pythonでスプレッドシートの文字列を検索する方法
  3. Pythonでスプレッドシートの行を別シートに転記する方法

環境

OSMac 10.15.4
Pythonpython 3.9
仮想環境Poetry
Homebrew8.0.19 Homebrew

Pythonでスプレッドシートの行ごと別シートに転記(コピー)する方法

今回の記事は以下の記事の番外編です。

前回との違いは、行単位で転記すること

今回も前回と同じスプレッドシートの表を使用します。

前回は、「楽天」の記載あるのB6セルを抽出して、シート2に転記しました。

今回は、B6セルではなく、6行目をまるごとシート2にコピーをしていきます。

つまり、セル単位ではなく、行単位ということです。

GAS GoogleSheetsAPI  スプレッドシート gmail_test1 「楽天」の文字列を検索して、行単位で転記

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を実行してみます。

GAS GoogleSheetsAPI  スプレッドシート gmail_test1 sheet2「楽天」の文字列を検索して行ごと別シートに転記、実行結果

行ごと、まるっとコピーができました!

解決さん

やった!シート1の6行目が、シート2に丸ごと転記できた!

ちなみに、検索したいワードは、andで繋ぐことで複数選択も可能です!

まとめ

この記事で学べること

  1. Google Sheets APIの使い方
  2. Pythonでスプレッドシートの文字列を検索する方法
  3. Pythonでスプレッドシートの行を別シートに転記する方法

前回の記事では、セル単位での転記を実施しましたが、

今回は、行単位での転記をしました。

実際の業務ではむしろこちらの方が、使用頻度が高いかもしれません。

もしも、顧客リストのようなシートから、必要な行を検索して、

ひとつずつコピーしていく作業であれば、一瞬で作業を終えることができますね!

-Python日記
-