FusionTables x Google SpreadSheet(Google App Script)
経緯
結果
FusionTablesを使おうとしたのは失敗だった…
スマートフォンのSpreadSheetアプリからFusionTablesにアクセスするスクリプトを実行できない
やろうとしたこと
幻想水滸伝(ティアクライス)の交易で、どこで何を買うべきかを計算したい
スプレッドシートで入力と計算ができれば便利かなー
やったこと
FusionTablesに価格表を格納して、出発地と到着地での価格から利益の出る交易品を、(利益率の降順、価格の昇順)でソートして表示
FusionTablesに新しい都市の交易品価格を登録
分かったこと
javascript
二次元連想配列はlengthが取れない(objectではlengthが取れないから、最初の次元はArrayにする)
Array.prototype.sortの引数に比較関数を指定すれば、二次元配列を複数の項目でソートできる。
Array.prototype.sortは、[{}]でもソートできる。比較関数でobjのプロパティを適切に取ればいい。
google app script
onEdit(event)はこの名前の関数があると編集時に呼ばれる(onChangeはトリガを設定する必要があるらしい)
onEdit(event)には、range(Range), source(SpreadSheet), value, oldValueが渡される。
FusionTables
SELECT文でJOINができない(CREATE VIEWでならできる。この場合でも、自己表連結はできない)
DELETE文でWHEREが使えない。全部消すか、1つずつ消すときはROWIDをSELECTで取得して、一つずつ消す必要がある。
WHEREでIN句が使えない
SpreadSheetのonEditで操作しようとすると、認証が必要になる
分からなかったこと
SpreadSheetのGASでFusionTablesを操作するときに、oauth認証をする方法が分からない(目的が小さいし、用途も自分用なので、Webアプリを作る気はない)
…コードとかリンクとかを埋めこみたいが、そのためにはブラウザを開きながらコーディングしないといけないのか
Bloggerに挫折したので
はてなブログをはじめてみようかと思う。
現実の自分から地続きとなるようなブログを。