Google スプレッドシートに外部からの情報を取り込むためにいろいろな関数が用意されているようです。feedは、=IMPORTFEED("http://www.oxox.xoxo=rss","items summary")で取り込めるのですが、JSON型式で取り込む方法がわかりません。

ご存じの方がいらしたらご教示いただけませんか?
もし、JSON型式で取り込めない場合は、何かを経由して取り込むことはできませんでしょうか?

回答の条件
  • URL必須
  • 1人10回まで
  • 13歳以上
  • 登録:2010/12/19 17:04:51
  • 終了:2010/12/24 06:35:38

ベストアンサー

id:y-kawaz No.2

y-kawaz回答回数1420ベストアンサー獲得回数2252010/12/20 03:41:07

ポイント50pt

前回答の手順2のところで以下のコードを貼り付けて保存し、

function getJsonValueTitle(url) {
  var res = UrlFetchApp.fetch(url);
  var json = Utilities.jsonParse(res.getContentText());
  return json.value.title;
}

セルに以下のように書けば、取得したJSONのvalue.titleが表示されます。

=getJsonValueTitle("http://pipes.yahoo.com/pipes/pipe.run?_id=5722e3cb5590f38899c626...")

id:ozaki

たいへんありがとうございます。実行してみたところ見事に取り込むことができました。ただ、http://pipes.yahoo.com/pipes/pipe.run?_id=5722e3cb5590f38899c626... には、複数の情報があり、それぞれ「title description pubDate content」の次に具体的な記載があります。

上記をある列には、「title」のみ取り込み(任意の複数行となります)、違う列には「description」(これも任意の複数行になります)のみ取り込みたいのです。

ちょうど、ある列に =IMPORTFEED("http://pipes.yahoo.com/pipes/pipe.run?_id=5722e3cb5590f38899c626...","items url") を実行して、ある列のみ複数行に取り込むイメージです(この場合はurlです)。

たいへんお手数ですが、具体的なプログラムを書いていただいて、助けていただけますか?

2010/12/20 03:58:37

その他の回答(1件)

id:y-kawaz No.1

y-kawaz回答回数1420ベストアンサー獲得回数2252010/12/20 03:02:14

ポイント50pt

既存の関数を使ってお手軽に、ということだとちょっとズレているかも知れませんが…。

GoogleスプレッドシートではGoogleAppsScriptというものが使えます。これはJavascriptで記述でき、上手く活用すれば色々なことが出来ます。

実際にJSONを取得してセルに表示出来ることを確認してみました。↓こんな感じです。

  1. ツール>スクリプトからスクリプトエディタを起動します
  2. 欲しい関数をJavascriptで記述します
  3. スクリプトを保存します
  4. 自作関数がスプレッドシート内で使えるようになります

Google Apps Script - Google Apps Script - Google Code

id:ozaki

ご回答、ありがとうございます。丁寧に説明していただいて、たいへんありがとうございます。ただ、私自身がこの手の技術に暗いため、再度質問させてください。

具体的には、http://pipes.yahoo.com/pipes/pipe.run?_id=5722e3cb5590f38899c626... で呼び出した情報をスプレッドシートに取り込みたいのですが、例えば、title 部分をある列に取り込むためには、どのようなプログラムを書くのでしょうか?

具体的に教えていただけますと、たいへん助かります。

2010/12/20 03:17:27
id:y-kawaz No.2

y-kawaz回答回数1420ベストアンサー獲得回数2252010/12/20 03:41:07ここでベストアンサー

ポイント50pt

前回答の手順2のところで以下のコードを貼り付けて保存し、

function getJsonValueTitle(url) {
  var res = UrlFetchApp.fetch(url);
  var json = Utilities.jsonParse(res.getContentText());
  return json.value.title;
}

セルに以下のように書けば、取得したJSONのvalue.titleが表示されます。

=getJsonValueTitle("http://pipes.yahoo.com/pipes/pipe.run?_id=5722e3cb5590f38899c626...")

id:ozaki

たいへんありがとうございます。実行してみたところ見事に取り込むことができました。ただ、http://pipes.yahoo.com/pipes/pipe.run?_id=5722e3cb5590f38899c626... には、複数の情報があり、それぞれ「title description pubDate content」の次に具体的な記載があります。

上記をある列には、「title」のみ取り込み(任意の複数行となります)、違う列には「description」(これも任意の複数行になります)のみ取り込みたいのです。

ちょうど、ある列に =IMPORTFEED("http://pipes.yahoo.com/pipes/pipe.run?_id=5722e3cb5590f38899c626...","items url") を実行して、ある列のみ複数行に取り込むイメージです(この場合はurlです)。

たいへんお手数ですが、具体的なプログラムを書いていただいて、助けていただけますか?

2010/12/20 03:58:37

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません