GoogleスプレッドシートにPHPからデータ書き込み
前回の記事は、GoogleスプレッドシートのデータをPHPで取得する方法を紹介しました。
今回はその発展形、GoogleスプレッドシートにPHPからデータの書き込みを行います。
※Google Sheets APIそのものや、Google Cloud Platformにおける各種設定に関しては、
前回の記事で説明していますので、そちらをご確認の上であらかじめ設定をお願いします。
0.対象シートの作成、ID確認と共有
まず書き込み対象となる空のシートを用意します。
※事前に対象シートのIDの確認作業と共有設定を行なっておく必要があります。
詳しくは前回記事の「3.対象シートのID確認と共有」の項目をご確認ください。
1.書き込みデータの準備と書き込み範囲の指定
サービスキーやクライアントインスタンスに関する説明は前回の記事で行いましたので、
今回はその辺りは一旦省略し、該当部分のコードのみ説明していきます。
まず$rangeで書き込むシートを指定し、$valuesで書き込む内容を指定します。
シート1のA1〜C3の範囲のセルに書き込みを行う場合は以下になります。
1 2 3 4 5 6 | $range = 'シート1'; $values = [ ["A1セルに書き込む内容", "B1セルに書き込む内容", "C1セルに書き込む内容"], ["A2セルに書き込む内容", "B2セルに書き込む内容", "C2セルに書き込む内容"], ["A3セルに書き込む内容", "B3セルに書き込む内容", "C3セルに書き込む内容"] ]; |
2.シートへの書き込み処理
各種必要な値がひととおり出揃いましたので、
実際にシートへの書き込み処理を行なっていきます。
以下のコードのようにupdateメソッドを用いてシートへの変更を行います。
1 2 3 4 5 6 7 8 9 10 | //書き込む内容を収めた配列をbodyに格納 $body = new Google_Service_Sheets_ValueRange(['values' => $values,]); /* いよいよシートの該当範囲に書き込む内容を反映します。 ValueInputOptionは値を書き込む際の形式指定で、 「RAWS」、もしくは「USER_ENTERED」のいずれかで指定します。 特にこだわりがない場合は「USER_ENTERED」で問題ありません。 */ $sheet->spreadsheets_values->update($spreadsheetId, $range, $body, ["valueInputOption" => 'USER_ENTERED']); |
実際に書き込みが行われました。
以下はソースコードの全容です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <?php require_once __DIR__ . '/vendor/autoload.php'; $key = __DIR__ . '/▲▲▲▲▲▲.json';//取得したサービスキーのパスを指定 $client = new Google_Client();//Googleクライアントインスタンスを作成 $client->setScopes([//スコープを以下の内容でセット \Google_Service_Sheets::SPREADSHEETS, \Google_Service_Sheets::DRIVE,]); $client->setAuthConfig($key);//サービスキーをセット $sheet = new Google_Service_Sheets($client);//シートを操作するインスタンス $sheet_id = '●●●●●●';//対象のスプレッドシートのIDを指定 $range = 'sheet1';//対象のスプレッドシートで書き込む範囲を指定(今回の場合、sheet1) //※この行より上は前回の記事と同一です。 //書き込む内容を配列にて指定指定 $values = [ ["A1セルに書き込む内容", "B1セルに書き込む内容", "C1セルに書き込む内容"], ["A2セルに書き込む内容", "B2セルに書き込む内容", "C2セルに書き込む内容"], ["A3セルに書き込む内容", "B3セルに書き込む内容", "C3セルに書き込む内容"] ]; //書き込む内容を収めた配列をbodyに格納 $body = new Google_Service_Sheets_ValueRange(['values' => $values,]); /* いよいよシートの該当範囲に書き込む内容を反映します。 ValueInputOptionは値を書き込む際の形式指定で、 「RAWS」、もしくは「USER_ENTERED」のいずれかで指定します。 特にこだわりがない場合は「USER_ENTERED」で問題ありません。 */ $sheet->spreadsheets_values->update($spreadsheetId, $range, $body, ["valueInputOption" => 'USER_ENTERED']); |
Author Profile
スターフィールド編集部
SHARE