Fusion Tables importRows を使用するサンプル
GASから、Fusion Tables を使用してると、すぐに何かの上限にひっかかるようでろくにinsertできない。
そこで、https://developers.google.com/fusiontables/docs/v1/reference/table/importRows を使用することにする。
前提条件
- Fusion Tables API を使用できるように設定しておく
- Fusion Tables Table のカラムは id列、txt列、date列の3つとする(並び順もこの通り)
var table_id = "xxxxxx"; var row1 = '"1", "テキスト", "2015/2/1"'; var row2 = '"2", "コンマ,はエスケープの必要無し", "2015/2/3"'; var row3 = '"3", "ダブルクォーテーション[""]を入れたい場合はエスケープする", "2015/2/2"'; var rows = [row1, row2, row3].join("\n"); var blob = Utilities.newBlob(rows, "application/octet-stream"); var result = FusionTables.Table.importRows(table_id, blob);
見ての通り、コンマ区切りで1行分のデータを作り、改行で繋げれば一気に3行分のデータをinsertできる。
1回のクエリで上限は100MBらしいが、エスケープしないといけないし、日本語は3バイトだし、実際には10MB文字数分ぐらいが上限になると思う。(それでも相当な分量だけど)