日本郵便に郵便番号データが公開されています。
本ファイルは、 CSVファイルをZIP圧縮ファイルです。
このファイルをスプレッドシートに読み込むました。
スプレッドシートに 郵便番号データを読み込む方法
- 郵便番号データをダウンロード。
- 1のファイルを解答。
- エディタで2のファイルを表示しする。
- 別名保存する。保存時に、文字コードを(Unicode(UTF-8))にする。(読み込み時は(shift-JIS))。(これを実施しないと、スプレッドシートで文字化けします。)
- 4のファイルをGoogleドライブにアップロードする
- アップロードしたファイルをダブルクリックし、表示する
- 「Googleスプレッドシートで開く」を押す。
- スプレッドシートファイルに変換できました。
非常に大変です。
Google Apps Script (GAS)を利用した場合の流れ
- 郵便番号データファイルをダウンロードする。
- 1のファイルを解答する。
- スプレッドシートに表示する。
Google Apps Script (GAS)の内容
【GAS】郵便局のサイトから郵便番号データをそのままスプレッドシートに取り込む
に記述されている「Utilities.parseCsv()」使った場合を利用しました。
GASを実行するだけで、スプレッドシートに郵便番号データが取得されます。
以下、GASの内容
function getPos() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName("TEST2"); //TEST2に本ファイルを取り込むようにしました。
// zipフィアル取得
var url = "https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/ken_all.zip";
var zipblob = UrlFetchApp.fetch(url).getBlob();
// 解凍
var unzipblob = Utilities.unzip(zipblob);
// データ取得
var data = unzipblob[0].getDataAsString("Shift_JIS");
// 2次元配列に転換
var ary = Utilities.parseCsv(data);
// シートに反映
sheet.getRange(1,1,ary.length,15).setValues(ary);
}
問題点
GASの終了までに、5分程度かかりました。そのため、パソコン・ネットワークの状態によっては、GASの制限(スクリプト実行時間:6分)に達してしまう場合があります。