PHPでGoogleスプレッドシートの値を取得する

こんにちわ!ふっくんです。

Googleスプレッドシートを使用して、PHPで値を取得する方法を紹介いたします。
Googleスプレッドシートを更新すれば、PHPで取得する値も更新されますので非常に便利です。

Googleスプレッドシートでデータを準備する

まずは、Googleスプレッドシートにデータを入力してください。
今回はサンプルとして以下のようなデータを準備しました。

データをWebに公開する

データの準備が完了したら、Googleスプレッドシートのデータをウェブに公開します。

公開範囲を限定することも可能です。

データをJSONに変換する

Googleスプレッドシートの値をPHPで取得するためには、データをJSON形式に変換する必要があります。
その方法は、URLを変更するだけです。

https://spreadsheets.google.com/feeds/list/GoogleスプレッドシートのIDを入力/od6/public/values?alt=json

GoogleスプレッドシートのIDというのは、データを入力したシートのURLのこの部分になります。
https://docs.google.com/spreadsheets/d/GoogleスプレッドシートのID/edit#gid=0

PHPで値を取得する

さて、いよいよPHPで値を取得していきます。

<?php
$data = "https://spreadsheets.google.com/feeds/list/GoogleスプレッドシートのIDを入力/od6/public/values?alt=json";
$json = file_get_contents($data);
$json_decode = json_decode($json);

$names = $json_decode->feed->entry;

foreach ($names as $name) {
    echo $name->{'gsx$苗字'}->{'$t'};
    echo $name->{'gsx$名前'}->{'$t'};
        echo ",";
}

以上でOKです!
これで、PHPで値を取得することができます。

Googleスプレッドシートの値をJSON形式に変換したものは以下のような構造になっているので、

object(stdClass)#1 (3) {
  ["version"]=>
  string(3) "1.0"
  ["encoding"]=>
  string(5) "UTF-8"
  ["feed"]=>
  object(stdClass)#2 (12) {
    ["xmlns"]=>
    string(27) "http://www.w3.org/2005/Atom"
    ["xmlns$openSearch"]=>
    string(39) "http://a9.com/-/spec/opensearchrss/1.0/"
    ["xmlns$gsx"]=>
    string(52) "http://schemas.google.com/spreadsheets/2006/extended"
    ["id"]=>
    object(stdClass)#3 (1) {
      ["$t"]=>
      string(105) "https://spreadsheets.google.com/feeds/list/GoogleスプレッドシートのID/od6/public/values"
    }

    、、、中略

    ["entry"]=>
    array(5) {
      [0]=>
      object(stdClass)#17 (9) {
        ["id"]=>
        object(stdClass)#16 (1) {
          ["$t"]=>
          string(111) "https://spreadsheets.google.com/feeds/list/GoogleスプレッドシートのID/od6/public/values/cokwr"
        }

       、、、中略

        ["gsx$id"]=>
        object(stdClass)#23 (1) {
          ["$t"]=>
          string(1) "1"
        }
        ["gsx$苗字"]=>
        object(stdClass)#24 (1) {
          ["$t"]=>
          string(9) "タナカ"
        }
        ["gsx$名前"]=>
        object(stdClass)#25 (1) {
          ["$t"]=>
          string(9) "タロウ"
        }
      }

      、、、中略

        }
      }
    }
  }
}

まずはJSON文字列を $json_decode = json_decode($json); でデコードします。
次に $names = $json_decode->feed->entry; でプロパティを指定して $name->{'gsx$苗字'}->{'$t'} と取得したい値を指定してください。

PHPファイルを実行してみると、指定した苗字名前がGoogleスプレッドシートから取得できていることがわかります。

Excelとして出力する

また、GoogleスプレッドシートのデータはExcelとしても保存することができますので、ぜひご活用ください!

SNSでもご購読できます。

コメントを残す

*