🖥
GASでAPIから取得したデータをスプレッドシートに挿入する
初めに、スプレッドシートを作成します。
上のメニューから 拡張機能 → Apps Scriptを選択
Apps Scriptを選択するとこのような画面に移動します
処理をが動くかテストする
APIからデータを取得
- リクエストURLを定義する
// jsonplaceholderのダミーAPI(実際にに叩けます)
var requestUrl = "https://jsonplaceholder.typicode.com/posts";
-
URLを元ににfetchをする
※詳しくはこちらに書いてあります↓
https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app
var response = UrlFetchApp.fetch(requestUrl);
-
レスポンスからcontentを取得して、JSON.parseする
レスポンスからの情報の取得はgetContentText()
メソッドを使うことで取得できます。
var res = JSON.parse(response.getContentText());
上記の工程をまとめると下記のコードになると思います。これでAPIからデータの取得は完了です。
function fetchValues() {
var requestUrl = "https://jsonplaceholder.typicode.com/posts";
var response = UrlFetchApp.fetch(requestUrl);
var res = JSON.parse(response.getContentText());
};
スプレッドシートのセルに挿入する
- resから二次元配列を作成する
var values = res.map(content => {
return [
content.title,
content.id,
]
});
二次元配列とは下記のような配列のことです。
// 例
[["田中", "12345"], ["佐々木", "34567"]....];
-
現在のスプレッドシートを取得する。
スプレッドシートClass → アクティブなスプレッドシートを取得 → アクティブなシートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
-
取得したシートのセルに挿入する
getRange()
は指定した範囲のセルを取得できます。
setValues()
セルに引数に入れたデータを挿入してくれます(二次元配列は自動的にセルごとに展開される)
※挿入したいデータの数と、セルの指定が相違していると下記のエラーが出るのでデータの数をセルの指定を合わせておくこと
// valuesのlength分
sheet.getRange(`A1:B${values.length}`).setValues(values);
まとめ
結構簡単にできるので、軽い情報収集など、やってみてはいかがでしょうか?😊
参考になれば幸いです。
作成したコードのまとめです↓↓↓
function fetchValues() {
var requestUrl = "https://jsonplaceholder.typicode.com/posts";
var response = UrlFetchApp.fetch(requestUrl);
var res = JSON.parse(response.getContentText());
var values = res.map(content => {
return [
content.title,
content.id,
]
});
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange(`A1:B${values.length}`).setValues(values);
};
実行結果
Discussion