郵便番号から住所検索アプリ
Google Sheets APIを使って郵便番号から住所を検索するアプリを作ります
郵便番号検索アプリは住所から郵便番号を検索しますがこのアプリは郵便番号から住所を検索します。郵便番号検索アプリはSQLiteデータベースを使っていますが、このアプリはデータベースは使わずにGoogleスプレッドシートを使っています。スプレッドシートコンポーネントには完全一致、部分一致フィルターをかけて読み込むメソッドがあるのですが正常に動かないので、取得した列をリストに入れてリストで検索しています。郵便番号のGoogleスプレッドシートは124,690行ありますが、問題無い速度で動作します。動作速度はビデオで確認できます。ページの最後にあるダウンロードセクションからソースコードをダウンロードできます。
このアプリでは読み取りだけ行うのでこのページに従ってあらかじめサービスアカウント作成する必要はありません。読み取るGoogleスプレッドシートのスプレッドシートIDは必要ですのでここを読んでスプレッドシートIDの取得方法を理解してください。
[プロジェクト]メニューから[新規プロジェクトを始める]を選択し、"Zip2Address“と名前を付けます。
Googleスプレッドシートの作成
郵便番号データの取得
- 日本郵便のサイトから全国の郵便番号データをダウンロードします。
データの加工
- ダウンロードしたデータからローマ字列を削除します。
- Shift JISからUTF-8に文字コードを変換して、CSVファイルとして保存します。KEN_ALL_ROME_UTF8.csv という名前にしました。
Googleドライブにアップロード
- KEN_ALL_ROME_UTF8.csv をGoogleドライブにアップロードします。
- アップロードしたKEN_ALL_ROME_UTF8.csv をGoogleスプレッドシートで開きます。これでKEN_ALL_ROME_UTF8という名前のGoogleスプレッドシートができます。
Googleスプレッドシートの共有
このアプリはGoogleスプレッドシートを読み取るだけなので、Googleスプレッドシートのドキュメントが「リンクを知っている全員が閲覧できる」に設定します。
デザイン編集
Screen1のタイトルを"郵便番号から住所検索"にします。
このアプリでは郵便番号を入力してGoogleスプレッドシートから住所を取得してアプリで表示するので、必要なコンポーネントを配置します。
水平配置内にラベル(ラベル1)、テキストボックス(三桁)、ラベル(ラベル2)、テキストボックス(四桁)、ボタン(消去)を配置します。
その下にボタン(住所検索)とラベル(住所)を配置します。そして、非可視コンポーネントのスプレッドシート(スプレッドシート1) です。それぞれのコンポーネントの名前はカッコ内のものです。
プロパティ設定について
- ラベルと消去以外のボタンのフォントサイズ=18.0
- ラベル1: テキスト="郵便番号"
- ラベル2: テキスト="-“
- 三桁: 横幅=38ピクセル、ヒント="三桁"
- 四桁: 横幅=50ピクセル、ヒント="四桁"
- 消去: 横幅=32ピクセル、背景の色=白
- 住所検索: テキスト="住所検索"
- 住所: テキスト="住所"
- スプレッドシート1:使用するスプレッドシートの スプレッドシートID を取得し、それをプロパティのスプレッドシートIDに設定してください
- スプレッドシートIDは以下の手順で取得できます:
- スプレッドシートを開く。
- URL の中に含まれる「
docs.google.com/spreadsheets/d/
」に続く文字列(例:1A2B3C4D5E6F7G8H
)がスプレッドシートIDです。 - よくわからない場合は 1_QEuK-BajSgInIoC6GGMI7LQ0rjnaN-eRZ24dLMNOkA を使ってください。このスプレッドシートのスプレッドシートIDです。
- スプレッドシートIDは以下の手順で取得できます: