はじめに
GASで銀行くんAPIを使って、
金融機関コードと支店情報をスプレッドシートに一括取得してみました。
銀行コード等を取得したい方はぜひ参考にしてみてください!
コードと出力結果
function ginko() {
const baseUrl = `https://bank.teraren.com/banks.json?per=2000`;
const response = UrlFetchApp.fetch(baseUrl);
const json = JSON.parse(response.getContentText());
const pasteArr = json.map(x => [x.code, x.normalize.name]);
const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("銀行くん");
sh.getRange("A2:B").clear();
sh.getRange(2, 1, pasteArr.length, pasteArr[0].length).setValues(pasteArr);
}
function shiten(){
const ss = SpreadsheetApp.getActiveSpreadsheet();
const bankSh = ss.getSheetByName("銀行くん");
const bankJson = bankSh.getRange("A2:B").getValues().filter(x => x[0])
.map(x => ({code:x[0], name:x[1]}));
bankJson.forEach(x => {
const url = `https://bank.teraren.com/banks/${x.code}/branches.json?per=1000`;
const response = UrlFetchApp.fetch(url);
const responseJson = JSON.parse(response.getContentText());
x.brunchJson = responseJson;
});
const maxColumns = Math.max(...bankJson.map(x => x.brunchJson.length + 2));
const pasteArr = bankJson.map(x => {
const rowData = [x.code, x.name];
x.brunchJson.forEach(y => rowData.push(`${y.code}_${y.name}`));
while (rowData.length < maxColumns) {
rowData.push("");
}
return rowData;
});
const brunchSh = ss.getSheetByName("銀行くん支店");
brunchSh.getRange("2:1500").clear();
brunchSh.getRange(2, 1, pasteArr.length, maxColumns).setValues(pasteArr);
}
関数名やシート名が適当すぎるので、必要に応じて変更してください。1
スプレッドシートにコンテナバインドした前提で、こんな感じです。
さいごに
以前紹介した記事では、
無料版では上限問題で全支店情報まで日次取得できませんでした。
今回の銀行くんの場合、支店コードを毎日取得しても制限に引っ掛かりません!
毎日実行のトリガー設定を行うなど、便利に活用してみてください。