kintoneのデータをスプレッドシートに取得する

kintoneのデータをスプレッドシートに取得する Google Apps Script

前回、以下の記事で、スプレッドシートからkintoneにデータを登録する方法について書きました。

今回は、その逆で、kintoneにあるデータをスプレッドシートに取得する方法を紹介します。

使用するkintoneのデータ

使用するkintoneのアプリは前回と同じものです。
データは以下のような状態になっています。

kintoneのデータ

スプレッドシートを準備する

kintoneアプリの項目に合うように、スプレッドシートを以下のようにします。

スプレッドシート

kintoneからデータを取得する処理をGASで記述します。

GASでkintoneからデータを取得する

GASを使用して、kintoneからデータを取得するコードは以下のようになります。

function getRecords() {
  var urlGetRecords = "[ここにkintoneのURLを入れる]/k/v1/records.json";
  var appId = [ここにアプリIDを入れる];
  var apiToken = '[ここにAPIトークンを入れる]';
  
  // kintoneからデータを取得
  var paramFields = "&fields=$id," + encodeURIComponent("日時,お名前,メールアドレス,件名,内容");
  var url = urlGetRecords + "?app=" + appId + paramFields;
  var res = JSON.parse(UrlFetchApp.fetch(url, {"method": "get","headers": {"X-Cybozu-API-Token": apiToken}}));
  
  // 取得したデータを整形
  var output = [];
  res["records"].forEach(function(record){
    var row = [];
    
    row.push(Utilities.formatDate(new Date(record["日時"].value), 'JST', 'yyyy/M/d HH:mm'));
    row.push(record["お名前"].value);
    row.push(record["メールアドレス"].value);
    row.push(record["件名"].value);
    row.push(record["内容"].value);
    
    output.push(row);
  });
  
  // スプレッドシートに出力
  var sheetOutput = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('問い合わせ一覧');
  sheetOutput.getRange(2, 1, output.length, output[0].length).setValues(output);
}

2行目はkintoneのAPIを呼び出すためのURLなので、自身のkintoneのURLを記述します。

3、4行目はアプリIDとAPIトークンです。
値の取得については前回の記事をご覧ください。
https://specially198.com/register-zoho-forms-data-in-kintone-in-conjunction-with-a-spreadsheet/#toc_id_2

7行目で取得する項目を定義します。
日本語の項目名はエンコードする必要があるので、encodeURIComponent関数をかましています。

9行目で実際にkintoneのAPIを呼び出して、データを取得します。

13行目からが取得したデータを整形して、スプレッドシートに出力する形式にします。
それぞれの項目を取り出して、配列に入れ替えています。
日時はデフォルトがUTCの形式なので、フォーマットを行っています。

27行目でスプレッドシートに出力します。
以上のコードを実行すると、取得した結果はスプレッドシートに以下のように出力されます。

kintoneのデータをスプレッドシートに取得

コメント

  1. ry より:

    こちらのページを参考とさせていただいて、kintoneのデータをスプレッドシートへ取得しようと試みているのですが、レコードが100件までしか取り込めずにいます。
    500件を超えるデータではないのですが、GASのコードでどうにかできるのでしょうか。。

    ご教示可能でしたら、ぜひお願いいたします。

タイトルとURLをコピーしました