Google Apps Script(以下GAS)を使って、
住所から郵便番号を検索するツールを作成する。
データは郵便局ではなくGoogle Mapを使う。
Google Map APIだと準備が面倒なので、
通常のGoogle Mapで検索する流れ。
まず、住所はGoogle Sheetにまとめておく。
住所データはこんな感じ↓
住所 | 郵便番号 |
---|---|
北海道旭川市ほげほげ | |
北海道札幌市ほげほげ |
ソースはこんな感じ↓
/** * 住所から郵便番号検索 */ function searchZip() { var response; var zip; var mDiff; var mStart = new Date(); var url = 'https://google.co.jp/maps/search/'; var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('対象シート名'); // データをすべて配列に var values = sheet.getDataRange().getValues(); try { values.forEach(function(value) { // 既に入力済みは無視 if (value[1].length > 0) { return; } // 6分の制限時間を超えないよう5分くらいでやめる mDiff = new Date() - mStart; if (mDiff > 300000) { return; } // グーグルマップで検索 response = UrlFetchApp.fetch(url + value[0]).getContentText(); // 検索結果に郵便番号があるかチェック zip = response.search('〒'); if (zip >= 0) { // 郵便番号を取得 value[1] = response.substr(zip + 1, 8); } else { // 取得できなかった住所はログに Logger.log(value[0]); } // グーグルに迷惑をかけないよう配慮 Utilities.sleep(1000); }); } catch(e) { // 何かエラーがあれば出力 Logger.log(e); } // データを戻す sheet.getDataRange().setValues(values); }
