【Power Query】WebページからデータをExcelに読み込む事例(kintoneのAPI連携) (original) (raw)
Power Queryで、WebページからデータをExcelに読み込む事例です。kintoneのREST APIを使用し、PowerQueryでkintoneに登録されたレコードをExcelで読み込み、使い慣れたExcelで集計やグラフ化ができるようにします。
内容:
アウトプットイメージ
PowerQueryにより「指定したkintoneアプリに登録のデータ一覧」をExcelで表示します。設定後は「更新」ボタンをクリックで、都度データが読み込まれます。
Webページ(kintone)のレコードをExcelに取り込むイメージ
前提条件
なお、確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2406)です。
kintoneのREST APIを利用するには「スタンダードコース」の契約が必要です。
また、kintoneのREST APIの仕様は次のとおりです。一度に取得できるレコードは、500件までなど、制限事項があります。cybozu.dev
実施手順
以降の手順は、Excel 2016やPower BIからkintoneのレコードをREST APIで取り出す - アールスリーインスティテュート |R3 Institute の情報を参考にさせていただき、PowerQuery部分の手順で「Table.FromRecords」を用いた方法です。
1.PowerQueryで「データの取得」-「Webから」の設定
PowerQueryで「データの取得」-「Webから」の設定で、詳細設定の画面とし、「URL部分」「HTTP要求ヘッダー パラメーター」を次のように設定します。
- URL部分
例: https://(自分のURL)/k/v1/records.json?app=アプリID
参考: 複数のレコードを取得する - cybozu developer network - HTTP要求ヘッダー パラメーター
ヘッダー部分: X-Cybozu-API-Token
パラメーター部分:APIトークン
参考: 認証 - cybozu developer network
PowerQueryで「データの取得」-「Webから」の設定例
上記の結果、次のようにソースが読み込まれた画面になります。
JSON ドキュメントの取得
2.Table.FromRecordsで、ソース[records]からテーブル作成
上記の「JSON ドキュメントの取得」の画面で、[records]のListをクリックし、必要な値を取得していくことは可能です。
この事例は、ステップを省略する方法として、Table.FromRecordsを使用します。
取得したkintoneのJSONドキュメントは、ソース[records]のListにあるRecordに欲しい情報があるため、「後にステップの挿入」により、
Table.FromRecords(ソース[records])
のステップを追加する。
上記の結果、次の状態となります。
Table.FromRecords(ソース[records])のステップ挿入後
3.必要な列のみ残し、列の並び替え
PowerQueryの「ホーム」タブで、「列の削除」-「他の列の削除」を使用するなどして、Excelに表示したい列のみ残します。また表示したい順番に応じて列を並び替えします。
必要な列のみ残した状態
4.各列を一つずつ展開し、valueを表示する
各列のデータがRecordのままであるため、各列を一つずつ展開し、valueを表示し、値そのものを表示します。
各列を一つずつ展開し、valueを表示する設定イメージ
以上で設定完了です。PowerQueryの設定完了の状態は次のとおりで、kintoneのデータが取得できています。
PowerQueryの設定完了
補足説明
Table.FromRecordsの説明
この事例は、ステップを省略する方法として、Table.FromRecordsを使用し、レコードのリスト records をテーブルに変換しました。詳細は以下をご覧ください。
なお、JSONを取り込む他の事例を以下に記載しています。
kintoneの列の名前表示について
kintoneのREST APIの列名については、「フィールドコード」の値が使用されています。
kintoneのアプリ設定で、必要に応じてわかりやすい名前に変更しておくと、設定も容易となります。
kintoneのフィールドの設定画面イメージ
以上、Power Queryで、WebページからデータをExcelに読み込む事例(kintoneのAPI連携)でした。