非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【GAS】Googleスプレッドシートをデータベースにするプログラムを作った(2)

   

前回、Googleスプレッドシートをデータベースのように扱えるプログラムを作りましたが、今回はそのバージョンアップ版です。

このプログラムの概要

図のように1つのスプレッドシートをデータベース化して複数のユーザーからアクセスするような仕組みです。詳細は前回の記事をご覧ください。

 

 

テーブルの内容はこんな感じです。1行目を項目行で、1列目は=row()を使って行番号を示しています。

 

ソースコード

GitHubにアップしていますので、そちらを参照ください。

https://github.com/satoshi71/spreadsheet-db

 

今回改善した点

  • 1行目を項目行とし、フィルターで項目名を指定できるようにした。
  • 1列目をIDとしオートナンバー型とした。固定番号ではなく途中で行削除が行われると再採番される。このため大人数で使おうとすると衝突事故が起きるかもしれない。
  • 2列名を主キーとして1度データを追加したら編集できないようにした。空欄も不可。

使い方

今回のデータベースとしては郵便局サイトから全国データを仕込んでいます。テーブル名(シート名)を「KEN」としています。データベースのプログラムをライブラリとして取り込み済みです。ライブラリ名を「db」としました。ライブラリの設定方法はこちらをご覧ください

 

 

データ参照
var buf = db.readRecords('KEN', "郵便番号=540611","住所");
//あいまい検索&降順の場合
var buf = db.readRecords('KEN', "郵便番号 LIKE '540611%'","住所 DESC");
//bufにヒットしたデータが配列で格納される
 

 

データ更新
//更新するデータは連想配列に
var data = {'県名':'愛知県','市区名':'名古屋市緑区', '住所':'桶狭間'};
var b = updateRecord('KEN', data, "郵便番号=4580925");
//b=trueで成功
 

 

新規登録
var data = {"郵便番号":"4580925", "けんめい":"アイチケン", "しちょうそん":"ナゴヤシミドリク", "じゅうしょ":"オケハザマ", "県名":"愛知県", "市区名":"名古屋市緑区", "住所":"桶狭間"}
var b = db.insertRecord("KEN", data);
//b=trueで成功
 

 

削除
b = db.deleteRecords("KEN", "郵便番号=4580925");
//b=trueで成功
 

 

 

 

スポンサーリンク

 - Google Apps Script